如何过滤掉子树,然后在jQuery中搜索
How can I filter out a subtree and then search in jQuery?
给定$('#test')
和以下 DOM,如何选择相应的ted-collapse
?
<div id='test' class='ted-panel'>
<div class='ted-collapse'></div>
<div class='ted-panel'>
<div class='ted-collapse'></div>
<div class='ted-collapse'></div>
<div class='ted-collapse'></div>
</div>
</div>
笔记:
- 相应的
.ted-collapse
是当前.ted-panel
的子元素,而不是任何嵌套.ted-panel
的子元素 -
.ted-collapse
不能保证是.ted-panel
的直系子女
从本质上讲,我想 (1) 过滤掉任何.ted-panel
的孩子,然后 (2) .find('.ted-collapse)
.
这是基于其中一个注释的单行解决方案:
$('#test').not($('#test').find('.ted-collapse'))
你也可以这样走:
$('.ted-panel .ted-collapse:not(#test.ted-panel .ted-panel .ted-collapse)')
工作演示
使用>
选择器
元素>元素选择器用于选择具有特定父元素的元素。注: 不会选择不直接是指定父级的子级的元素。
$('#test > .ted-collapse')
获取#test
,查找分类为 .ted-collapse
的元素,但排除作为#test
$('#test').find('.ted-collapse:not(#test > .ted-panel .ted-collapse)');
或者,如果#test
不是正确的初始选择器,也许
$('div.ted-panel:first-child').find('.ted-collapse:not(div.ted-panel:first-child > .ted-panel .ted-collapse)');
有关工作示例,请参见 http://jsfiddle.net/jhfrench/gzjvsyb3/。
相关文章:
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 等待300毫秒,然后使用jQuery向下滑动菜单
- 使用Jquery收集数组中的行ID,然后为新表查询这些值
- jquery通过ajax验证电子邮件,然后再通过ajax提交表单
- JQuery将侦听事件添加到.rezable(),然后附加DIV's
- jQuery Deferred and promise-错误:对象没有't支持属性或方法'然后'
- jQuery幻灯片Down&然后在计时器上向上滑动
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- 当调用.of()然后调用.on()时,Jquery是否可能将事件推迟
- 在提交之前验证表单,jQuery发布到javaScript,然后提交到确认页面
- 使用 jQuery 加载 JSON,然后将其显示给查看器
- jQuery淡入淡出/动画不透明度到不同的显示类型,然后阻止
- jQuery 插入,然后淡出,然后删除
- jQuery移动显示页面5秒钟,然后重定向
- 如何检查 HTML 标记,然后在 jQuery 验证中添加错误
- JQuery 测试元素是可见的还是隐藏的,然后添加删除类
- JQuery/JavaScript:遍历表单字段,执行计算,然后提交
- jQuery检查URL,然后显示和隐藏元素
- 如何先追加,然后在jquery中运行ajax
- 如何确保我的值已添加并存在,然后运行另一个代码jquery