2011-01-19 199 views
22

的屬性,如果我有以下標記:獲取子元素

<p class="header hours"> 
    <a href="javascript:void(0)" class="sort" sortcat="hours"> 
     Hours&nbsp;<span class="imgholder" sortcat="hours">&nbsp;</span> 
    </a> 
</p> 

如何我可以定位錨標記中的<span>標籤?有五個其他類似<p>標籤條目,每個條目與sortcat=

+0

你想被點擊或鏈接時做一些與孩子跨度...? – mkoryak 2011-01-19 20:29:43

+1

@Pruitlgoe``我認爲我們同意你不使用這種憎惡`:`` – 2011-01-19 20:30:24

+1

@Pruitlgoe另外,你可能想用`data-`前綴這些自定義屬性。 jQuery通過其data()方法對HTML5`data- *`屬性提供了很好的支持。 – 2011-01-19 20:34:00

回答

44
$(".sort").click(function(){ 
    var cat = $(this).children("span").attr("sortcat"); 
    //do something with the sortcat 
}); 
0

find()查找給定元素中的元素。

$('a.sort').find('span');

9
$("a span[sortcat]").attr('sortcat') 

這會給你的第一個元素的sortcat值。爲了讓所有的人,這樣做:

$("a span[sortcat]").map(function(){ return $(this).attr('sortcat') }) 

看到這個工作演示:http://jsfiddle.net/BwgDW/

1

有一對夫婦,你可以參考跨度標籤的方式,但他們都以「.attr('sortcat結束');「我想這取決於你想成爲什麼樣的特性,以及如果還有其他一些帶有錨標籤和跨度的p標籤,你需要多大的靈活性。

$('p.header a.sort span.imgholder').attr('sortcat'); 

/* or */ 

$('span.imgholder').attr('sortcat'); 

您可以選擇,或者在標籤內的屬性基於它們的標籤名,他們的類名的元素。請參閱jQuery的文檔上選擇:

http://api.jquery.com/category/selectors/basic-css-selectors/

http://api.jquery.com/category/selectors/