2012-02-10 56 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

相关问题