当前位置 : 主页 > 网页制作 > JQuery >

JQuery – 选择整个元素,除了嵌套在其中的一个特定元素

来源:互联网 收集:自由互联 发布时间:2021-06-15
如果两个元素的id-s都已知,是否有可能选择一个元素但没有嵌套在其中的元素之一? 喜欢: div id="outerdiv" div div id="innerdiv1" /div div id="innerdiv2" /div /div/div 我想做一个选择哪个会返回oute
如果两个元素的id-s都已知,是否有可能选择一个元素但没有嵌套在其中的元素之一?

喜欢:

<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()
网友评论