2012-07-29 82 views
1

說我有這個標記摘錄:我可以選擇屬性名稱(不是值)以特定字符串開頭的所有元素嗎?

<p onblur="...">text 1</p> 
<p class="myclass">text 2</p> 
<p onfocus="...">text 3</p> 

有,我可以用得到利用的事實,他們都有這樣開始的屬性的第一和最後一個元素(而不是中間)CSS選擇器'上'?我正在尋找一種通用的解決方案,而不是針對這種特殊情況(因爲當然,對於這個特定示例,可以通過更直接的方式實現預期的結果)。

一個基於Javascript的解決方案對我來說也能很好地工作(儘管我希望避免蠻力檢查每個元素的方法)。這實際上是我正在尋找的(可以與jQuery或類似庫一起使用的選擇器)。

+2

這是一個很好的編輯LOL,我認爲'pre'具有編碼的HTML是OP的代碼。 – Esailija 2012-07-29 15:47:42

+1

我認爲你最好找到一種完全不同的編碼策略。通過「onfoo」屬性綁定事件處理程序非常有限,它混合了代碼和標記。如果您使用JavaScript來發現元素並綁定處理程序,則可以用類標記它們以指示該事實。 – Pointy 2012-07-29 15:51:00

+0

我認爲這是一個醜陋的設計,選擇屬性名稱。也許你可以添加一個更好的選擇器。 – 2012-07-29 15:51:22

回答

1

正如尖尖的指出,這不是推薦的解決方法。只需使用一個類將您想要一次定位的元素進行分組。

但是,你可以針對大部分事件處理程序與此:

[onabort],[onbeforecopy],[onbeforecut],[onbeforepaste],[onblur],[onchange],[onclick],[oncontextmenu],[oncopy],[oncut],[ondblclick],[ondrag],[ondragend],[ondragenter],[ondragleave],[ondragover],[ondragstart],[ondrop],[onerror],[onfocus],[oninput],[oninvalid],[onkeydown],[onkeypress],[onkeyup],[onload],[onmousedown],[onmousemove],[onmouseout],[onmouseover],[onmouseup],[onmousewheel],[onpaste],[onreset],[onscroll],[onsearch],[onselect],[onselectstart],[onsubmit] { 
    color: #BADBAD; 
} 

觀看演示http://jsfiddle.net/uwXgt/1/

0

有一個CSS選擇器選擇基於元素的屬性:

p[onfocus] { color:blue; } 
p[class=myclass] { color:red; } 

但是在CSS沒有辦法選擇基於屬性名的第一部分。

相關問題