如果两个元素的id-s都已知,是否有可能选择一个元素但没有嵌套在其中的元素之一? 喜欢: div id="outerdiv" div div id="innerdiv1" /div div id="innerdiv2" /div /div/div 我想做一个选择哪个会返回oute
喜欢:
<div id="outerdiv"> <div> <div id="innerdiv1"> </div> <div id="innerdiv2"> </div> </div> </div>
我想做一个选择哪个会返回outerdiv但没有像这样的innerdiv2:
<div id="outerdiv"> <div> <div id="innerdiv1"> </div> </div> </div>
有没有像$(‘#outerdiv’)那样的声明.不是(‘#innerdiv2’)还是可以做到这一点的东西?
我可以使用clone()remove()解决这个问题,但我只是徘徊是否有机会这样做..
谢谢
这个给你,$('#outerdiv div:not(#innerdiv2)')
包括外部div:
$('#outerdiv div:not(#innerdiv2),#outerdiv')
它实际上是一个有效的CSS3选择器,它也适用于jQuery.
为了回答你的评论,我在浏览器控制台上进行了一些测试:
a = $('<div id="a"><div id="wrap"><div id="one"></div><div id="two"></div></div>') a.find('div:not(#two)').addClass('a') Result: <div id="wrap" class="a"> <div id="one" class="a"></div> <div id="two"></div> </div>
html()方法打印所选堆栈的第一个匹配元素的HTML内容.您选择的堆栈类似于:[#outerdiv,div,#innerdiv1].所以html()将显示#outerdiv的html.如果您需要在没有#innerdiv2的情况下生成HTML,那么您需要将其分离:
$('#innerdiv2').detach() $('#outerdiv').html()