简单地问,没有父母的jQuery子选择器是否有效?如果是的话,你将如何使用它?
jQuery子选择器示例:
$('ul > li')
没有父级的jQuery子选择器示例:
$('> li')
上面的第二个例子不起作用。但是,我不记得我以前是否在过去看到过它,或者我看到过一些预先的东西,比如:
$('ul').not('>li')
也不起作用(但不会弹出一条错误消息,因此被忽略了?)
因此,我的问题是,您会不会使用一个没有父级的子选择器,并让它成为一个有效的jQuery选择器。
谢谢,如果问题很蠢,很抱歉。:)
编辑:
除了底层的Nick的jQuery.find示例,另一个用例是
$('ul:has(>li)')
注意:$(ul‘).has(’>li‘)是错误的,应该写成
$('ul').has('ul>li')
而不是()
不确定是否正确,但您永远不会使用not() directy内部的>,因为not()只关注一个元素,而>比较多个元素。然而,你可以做这样的事情
$('li:not(:has(>p))'
发布于 2010-10-21 14:28:57
是的,它在没有父级的情况下工作,但是不能在默认上下文中工作,因为您的<li>
不是document
的direct
子环境。而且,它本身也没有任何意义,因为它是某物的直接子类,它与$("li")
是一样的。
什么时候使用?可能是为了减少代码,例如:
$(this).find("> li > span a");
//as opposed to not being able to start with it:
$(this).children("li").children("span").find("a");
发布于 2010-10-21 14:25:26
我想不出需要一个没有父级的子选择器的情况。子选择器用于选择父元素的直接子元素。如果没有父元素,那么应该选择哪个子元素?
发布于 2010-10-21 14:27:08
你为什么要那样做?
您可以始终使用$('* > li')
,尽管我不太清楚这会实现什么,因为li
应该总是ul
或ol
的子类
https://stackoverflow.com/questions/3992473
复制相似问题