我尝试选择具有特定attr的所有div,但此attr不是特定的。
$("[data-minut = '23']") // this works
似乎这会选择除了attr 23之外的所有其他内容。我想选择所有具有attr数据分钟的div,但这个attr不是23:
$("[data-minut != '23']")
以下是检查的示例:http://jsfiddle.net/3jbf2wwh/
JQUERY:
$("div").click(function() {
$("[data-minut != '23']").css("background-color","yellow");
});
CSS:
.blue {
margin:0 auto;
width:80px; height:30px;
margin-bottom:20px;
cursor:pointer;
background-color:blue;
}
HTML:
<div class="blue" data-minut='23'></div>
<div class="blue" data-minut='24'></div>
<div class="blue" data-minut='25'></div>
答案 0 :(得分:3)
只需使用:not
或.not()
$("[data-minut]:not([data-minut=23])")
// or
$("[data-minut]").not("[data-minut=23]")
not
从集合中删除指定的选择器。这里排除了data-minut=23
的元素,其他元素也包括在内。
答案 1 :(得分:2)
如果您在选择器中添加div
,则代码可以正常运行。否则它也会将body
更改为黄色的背景颜色,因为您没有告诉jQuery您只想更改没有指定属性的div的颜色,因此它将更改每个节点的颜色。 t包含该属性。
http://jsfiddle.net/3jbf2wwh/3/
$("div").click(function() {
$("div[data-minut != '23']").css("background-color","yellow");
});
答案 2 :(得分:1)
我希望通过在选择器的开头添加div
,让它按预期工作:
$("div").click(function() {
$("div[data-minut != '23']").css("background-color","yellow");
});
现在,所有具有data data-minut属性且其值与23不同的div都会被yellow
background-color
突出显示。如果你问为什么它正在运作,那么我仍然想要解决这个问题,我欢迎一些经验丰富的jQuery老手的评论和帮助,指出为什么这是工作:-) ...也许它与选择器更具体的事实有关。