首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >>没有父母允许的jQuery儿童选择器?

>没有父母允许的jQuery儿童选择器?
EN

Stack Overflow用户
提问于 2010-10-21 14:21:47
回答 3查看 854关注 0票数 1

简单地问,没有父母的jQuery子选择器是否有效?如果是的话,你将如何使用它?

jQuery子选择器示例:

代码语言:javascript
运行
AI代码解释
复制
$('ul > li')

没有父级的jQuery子选择器示例:

代码语言:javascript
运行
AI代码解释
复制
$('> li')

上面的第二个例子不起作用。但是,我不记得我以前是否在过去看到过它,或者我看到过一些预先的东西,比如:

代码语言:javascript
运行
AI代码解释
复制
$('ul').not('>li')

也不起作用(但不会弹出一条错误消息,因此被忽略了?)

因此,我的问题是,您会不会使用一个没有父级的子选择器,并让它成为一个有效的jQuery选择器。

谢谢,如果问题很蠢,很抱歉。:)

编辑:

除了底层的Nick的jQuery.find示例,另一个用例是

代码语言:javascript
运行
AI代码解释
复制
$('ul:has(>li)')

注意:$(ul‘).has(’>li‘)是错误的,应该写成

代码语言:javascript
运行
AI代码解释
复制
$('ul').has('ul>li')

而不是()

不确定是否正确,但您永远不会使用not() directy内部的>,因为not()只关注一个元素,而>比较多个元素。然而,你可以做这样的事情

代码语言:javascript
运行
AI代码解释
复制
$('li:not(:has(>p))'
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-21 14:28:57

是的,它在没有父级的情况下工作,但是不能在默认上下文中工作,因为您的<li>不是documentdirect子环境。而且,它本身也没有任何意义,因为它是某物的直接子类,它与$("li")是一样的。

什么时候使用?可能是为了减少代码,例如:

代码语言:javascript
运行
AI代码解释
复制
$(this).find("> li > span a");
//as opposed to not being able to start with it:
$(this).children("li").children("span").find("a");
票数 4
EN

Stack Overflow用户

发布于 2010-10-21 14:25:26

我想不出需要一个没有父级的子选择器的情况。子选择器用于选择父元素的直接子元素。如果没有父元素,那么应该选择哪个子元素?

票数 0
EN

Stack Overflow用户

发布于 2010-10-21 14:27:08

你为什么要那样做?

您可以始终使用$('* > li'),尽管我不太清楚这会实现什么,因为li应该总是ulol的子类

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3992473

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文