2012-06-26 55 views
1

相同的div我有一個DOM樹:查找DOM樹

<div id="all"> 
    <div id="second"> 
    <div id="target"></div> * 
    <div id="somediv"></div> 
    </div> 
    <div id="second"> 
    <div id="target"></div> 
    <div id="somediv"></div> 
    </div> 
    <div id="second"> 
    <div id="target"></div> 
    <div id="somediv"></div> 
    </div> 
</div> 

我怎樣才能獲得ID =「目標」的所有div?

$('#second').siblings().andSelf().children(':first') - 僅顯示第一個目標(*),忽略其餘部分。

+6

HTML是無效的ID應該是唯一的, ':)' –

回答

5

在HTML文檔中不能有多個具有相同ID的div。相反,使用class =「target」。然後你就可以得到與類目標的所有div在所有

$("#all .target") 
+0

非常感謝,本! –

1

嘗試以下操作:

$('div[id=second]').siblings().andSelf().children(':first') 

當一個ID選擇呈現,jQuery將只具有該ID返回的第一個元素。 這是因爲具有相同ID的元素是無效的HTML。 HTML解析器通常很靈活,並且在大多數瀏覽器中可能會顯示正常,但不能保證是這種情況。考慮將您的標記更改爲使用data-屬性或CSS類或類似的ID而不是ID。

+0

感謝您的詳細解答;我將來會小心的! –

1

在HTML不能重複ID ..更換id="target"class="target",然後 -

$('#all').find('.target');