2013-08-06 198 views
3

我有一個自定義屬性,名爲數據角色,我想找到jQuery中的所有元素,其中data-role =「content」如何通過jQuery中的自定義屬性的特定值獲取元素?

enter image description here

我目前做這與一些舊的JavaScript代碼:

var elements = element.getElementsByTagName(tagName); 
for(var i=0; i<elements.length; i++) { 
    if(elements[i].getAttribute("data-role") == "content") { 
    // does something evil 
    } 
} 

免責聲明:代碼不檢查,只是把它寫下來很快。

我有一種感覺,在jQuery中有一種優雅的單線解決方案,但我是新手。在我知道之前我無法入睡,所以也許你可以幫助一個兄弟。 ;-)

+0

非常感謝quzick解決方案,我使用了Abraham的選擇器。需要等待約。 15分鐘,直到我可以標記爲已解決。 – beta

回答

6
$("tagName[attribute='value']") 

或者,你的情況:

$("div[data-role='content']") 

返回符合條件的元素。

從那裏,如果你想遍歷集合此選擇和do something evil匹配的元素,你可以:

$("[data-role='content']").each(function(index){ 

    Do something evil 
    $(this) is the current element in the iteration 
}); 

請注意,標記名是可選的。 JQuery選擇器可以隨意連接,因此您可以同時查詢標記名(簡單字符串),標識(由#開頭),類(由.開頭)或屬性(如上面的方括號中),或者它們的任何有限組合例如:

$("tagName#someId.someClass.someOtherClass[attribute='value']") 
$("[attribute='value']") 
$('tagName') 
$('#someId') 

是所有有效的查詢,但請記住,jquery只會返回匹配查詢中所有條件的元素。

1

使用attribute equals selector

$("div[data-role='content']") 

u能找到更多信息here

1

jQuery的按屬性選擇器中選擇:

$('[data-role="content"]') 

而對於一個陣列使用的.each();代替for

$('[data-role="content"]').each(function(){ 
    alert($(this).html()); 
}); 
相關問題