jQuery选择器仅在父节点没有attr的情况下

时间:2014-10-01 15:23:13

标签: javascript jquery

想象一下,我有这个:

<span email="a@test.com" class="parent">
     <div class="child"></div>
</span>
<span email="b@test.com" class="parent">
     <div class="child"></div>
</span>

我如何才能找到父级别.child不是email的{​​{1}}元素?

5 个答案:

答案 0 :(得分:4)

试一试:

$('.parent[email!="b@test.com"] .child');

Source

问候。

答案 1 :(得分:2)

使用此选择器:

$(".parent:not([email='b@test.com']) .child")

您可以使用.each来获取每个元素:

$(".parent:not([email='b@test.com']) .child").each(function(){
    var item = $(this); // get the current element
    // do something
});

答案 2 :(得分:2)

这很简单:

$('[email][email!="b@test.com"] > .child')

<强>解释
通过此,您可以找到包含child类的所有元素,其中父级(>)具有电子邮件属性([email]),此电子邮件属性不是b@test.com({{1} })。

以下是demo

答案 3 :(得分:1)

只需使用其中一个选择器:

.parent:not([email="b@test.com"]) > .child
.parent:not([email=b\@test\.com]) > .child

.parent:not([email="b@test.com"]) > .child {
  color: red;
}
<span email="a@test.com" class="parent">
     <div class="child">A</div>
</span>
<span email="b@test.com" class="parent">
     <div class="child">B</div>
</span>

如果您想通过JS获取所有内容,请使用querySelectorAll

document.querySelectorAll('.parent:not([email="b@test.com"]) > .child')

答案 4 :(得分:0)

$.find("span[email !='b@test.com'] .child");
相关问题