jQuery选择器中空格的注意事项

jQuery中选择器中的空格一直都觉得是一个不起眼的小问题,可往往是小问题会给我们的结果带来很大的影响,多一个空格和少一个空格也许会得到截然不同的结果。所以空格问题不容忽视!

首先来解释一下选择器里带空格是什么意思,如果选择器中两个元素之间用空格隔开,则表示为前一个元素的后代元素。比如$(‘div :hidden’),表示的是div里所有的隐藏元素,这个隐藏元素可以是div的子元素,也可以是div子元素的子元素。如果选择器中没有空格的话,表示一个并且的关系,如果说$(‘div:hidden’),表示的是所有隐藏的div,这个就和元素的层次没有关系了!

下面看一个实例:HTML代码部分
<div>
<div style="display: none;">aa</div>
<div style="display: none;">bb</div>
<div style="display: none;">cc</div>
<div style="display: none;">dd</div>
</div>
<div style="display: none;">ee</div>
<div style="display: none;">ff</div>

jQuery部分
var $ta = $('.test :hidden'); //带空格的选择器表示class为test的元素中所有隐藏的元素,很明显结果是第一个div里所有的元素
var $tb = $('.test:hidden'); //不带空格的选择器,表示的是class为test并且是隐藏的元素,这里指的是后两个div以及第一个div中的最后一个子元素
alert($ta.length); //输出为4
alert($tb.length); // 输出为3

jQuery选择器中空格问题不容忽视,所以在开发过程中一定要理清思路,看看是否需要加空格。

jQuery选择器中空格的注意事项》上有 45 条评论

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>