2014-01-19 30 views
0

我使用這個jQuery代碼第一胎jQuery中似乎並沒有被找到

$('div:first-child').text('change me'); 

而這個HTML在主體部分的權利元素:

<div class="myclass"> 
<strong>test1</strong> 
<p>test2</p> 
<strong>test3</strong> 
<p>test4</p> 
</div> 

我認爲這隻會取代「test1」,但它似乎取代了所有我在頁面上看到的「改變我」。

我誤解了第一個孩子的用法嗎(我認爲這個jQuery代碼會替換第一個子元素,它是第一個div的強1的test1)?或者我的代碼錯了?

感謝

+2

':first-child'選擇元素列表的第一個元素。所以'div:first-child'將會是第一個被發現的div。雖然具有空格(!)的''div:first-child''將處理該div中的所有元素,並選擇其中的第一個元素。 –

+0

謝謝!這就是我一直在尋找的。作爲一個後續問題,如果我有兩個div(所以想象上面的代碼複製兩次),那麼你的代碼(用空格!)將替換兩個div中的第一個元素。我需要做什麼,只是爲了替換第一個div的第一個孩子? – theqs1000

+0

給div的一個ID和'#divid1:first-child'去 –

回答

1

您需要與孩子選擇然後使用div元素選擇:第一胎選擇

$('div > :first-child').text('change me'); 

您的代碼正在搜索div元件,它的第一個孩子的父元素,而不是div元素

演示中找到的第一個孩子:Fiddle

1

:first-child選擇所有父元素的第一個子元素。試試這個:

$('div strong:first-child').text('change me'); 

這裏有一個fiddle

+0

感謝您的回覆。如果它選擇了所有父母的第一個子元素(div?),那麼我是不是會看到「改變我」4次而不是1次? – theqs1000

+0

好問題。 :第一個孩子只會給你父元素中的第一個元素。你的div中的其他元素分別是第二,第三和第四個孩子。 – Peter

相關問題