>没有父母允许的jQuery儿童选择器?
快速问题,是没有父级的jQuery子选择器有效吗? 如果是这样,你会如何使用它?
jQuery子选择器的示例:
$('ul > li')
没有父级的jQuery子选择器的示例:
$('> li')
上面的第二个例子不起作用。 但是我不记得以前我是否曾经看过它,或者我看到了一些像以前一样的东西:
$('ul').not('>li')
是不是真的有用(但是没有弹出错误信息,所以它被忽略了?)
所以我的问题是你是否会使用没有父级的子选择器,并让它成为一个有效的jQuery选择器。
谢谢,抱歉,如果问题是愚蠢的。 🙂
编辑:
除了底部的Nick的jQuery.find示例,另一个用例是
$('ul:has(>li)')
注意:$(’ul’)。has(’> li’)是错误的,应该写
$('ul').has('ul>li')
AND for not()
不确定我是否正确,但你不会使用> not()的内部因为not()只涉及一个元素,而>比较多个元素。 但是你可以做类似的事情
$('li:not(:has(>p))'
是的,它在没有父项的情况下有效, 但它不能在默认上下文中,因为您的
不是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");
我想不出需要没有父级的子选择器的情况。 子选择器用于选择父元素的直接子元素。 如果没有父元素,应该选择其子元素?
你为什么要这样?
你总是可以使用$('* > li')
虽然我无法真正看到它会实现什么,因为li
应该永远是ul
或ol
的孩子