2012-02-10 55 views
2
<script> 
    $(document).ready(function(){ 
     $("#container div:first-child").text("foobar");   
    });  
</script> 
<div id="container"> 
    <div>foo</div> 
    <div>bar</div> 
</div> 

將打印如何在不知道元素的情況下選擇第一個孩子?

foobar 
bar 

什麼是正確的語法選擇只選擇第一個子節點,無論它是元素?

例如,我怎樣才能改變選擇讓

<span>foo</span> 
<div>bar</div> 

將打印

foobar 
bar 

回答

5

只需刪除選擇的div部分...

$("#container :first-child").text("foobar"); 

,或者你可以代替*,但沒有區別...

$("#container *:first-child").text("foobar"); 
+0

太棒了,謝謝。有趣的是,$(「#container:first-child」)。text(「foobar」);'起作用但是除去冒號前的空格。 ;'不起作用 – user784637 2012-02-10 18:13:07

+1

@LedZeppelin:這是因爲空格是* [後代選擇器](http://api.jquery.com/descendant-selector)*。例如,如果您執行'$('div .some_class')',則您要求'divs'元素下的'.some_class'元素。但是如果你刪除了空格'$('div.some_class')',現在你要求'div'元素自己擁有那個類。所以'$(「#container:first-child」)'表示選擇'#container',但是* only *如果它是其父項的第一個子項。 – 2012-02-10 18:21:09

+0

感謝您的澄清,我很感激 – user784637 2012-02-10 19:53:33

相關問題