2011-09-25 178 views
2

好的,這可能有點基本。的HTML是:jquery得到兒童的孩子的孩子

<div class="parents-of-all"> 
<p> 
    <a> 
     <span class="thechild">Something</span> 
    </a> 
</p> 

了jQuery是

$('.parents-of-all').click(function(){ 
    alert($(this).find('span').attr('class')); 
}); 

但不知何故,這是行不通的。這裏測試:

http://jsfiddle.net/3zn7e/1/

我的問題是我怎麼能遍歷跨度?我通常的方法是

$(this).children().children().children().attr('class'); 

我敢肯定有辦法比這和使用find較短()就是其中之一,但我似乎無法使它工作。

非常感謝!

編輯:杜!顯然我忘了。爲所有父母的DOM選擇器。有時候最簡單的錯誤就在你的臉上。

但同樣,有沒有使用find()和多子女()有什麼區別?我發現使用多個children()可以確保更精確的遍歷,因爲我們可以添加元素選擇器(如果需要),但是還有其他主要區別?

回答

1

如果您正在尋找在兒童與 - 祖先或子女,與父母,你應該改變屬性使用各自的選擇器:

例如:

$('.parents-of-all span').addClass('hello'); 

請問類「你好」適用於所有<span>元素是parents-of-all類的元素的後代。