我正在审查的代码,发现
$("#item1 #item2") and $("#item1>#item2")
可以互换使用。有没有什么不同,还是一样的?
我正在审查的代码,发现
$("#item1 #item2") and $("#item1>#item2")
可以互换使用。有没有什么不同,还是一样的?
两者将匹配
<div id="item1">
<div id="item2">
</div>
</div>
但是只有第一个将匹配
<div id="item1">
<div>
<div id="item2">
</div>
</div>
</div>
第一表达式使用descendant selector。第二个表达式中的>
符号是child selector。两者都是标准的CSS选择器。
但是,由于id
s 必须是是唯一的,两者都过于复杂。相反,你应该只使用$('#item2')
同为CSS选择
#this #that
指任何#that
那就是#this
一个孩子。
凡为
#this>#that
意味着只有#that
这是#this
的直系后裔。
>
的符号是指“仅包括属于该元件的直接子元素”。因此,如果您只想选择子项为#item1
的子项,请使用它,否则使用第一个选项。
>
是指直接,直接孩子。
直接
<div id="a">
<div id="b">
</div>
</div>
间接
<div id="a">
<div>
<div id="b">
</div>
</div>
</div>
什么是HTML看起来就像该代码?多个'#item1's?如果有,那么它是无效的。 – Eric 2011-06-08 17:15:38
您可能想了解[CSS选择器](http://www.w3.org/TR/css3-selectors/#selectors)。在第一个选择器中有一个后代组合器,在第二个选择器中有一个子组合器。 – 2011-06-08 17:17:09
@ Eric-这些项目是独一无二的......我应该刚刚给出了使用类而不是id的例子......无论如何采取了一些措施。 – Raja 2011-06-08 17:23:21