Select div 具有特定的属性而不是特定的值
Select div WITH specific attr and NOT specific value
我尝试 select 所有具有特定属性的 div,但这个属性不是特定属性。
$("[data-minut = '23']") // this works
似乎这个 select 除了 attr 23 之外的所有东西。我想要 select 所有具有 attr 数据分钟但这个 attr 不是 23 的 div:
$("[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>
只需使用:not
或.not()
$("[data-minut]:not([data-minut=23])")
// or
$("[data-minut]").not("[data-minut=23]")
not
从集合中删除指定的选择器。这里排除了具有 data-minut=23
的元素,并包含其他元素。
如果您在选择器中添加 div
,您的代码就可以工作。否则它还会将 body
更改为黄色背景色,因为您没有告诉 jQuery 您只想更改没有指定属性的 div 的颜色,所以它将更改不包含该属性的每个节点的颜色。
http://jsfiddle.net/3jbf2wwh/3/
$("div").click(function() {
$("div[data-minut != '23']").css("background-color","yellow");
});
我希望它能按预期工作,方法是在选择器的开头添加 div
:
$("div").click(function() {
$("div[data-minut != '23']").css("background-color","yellow");
});
现在所有具有 data data-minut 属性且其值不同于 23 的 div 都被突出显示为 yellow
background-color
。如果您问它为什么有效,那么我仍在努力解决这个问题,我欢迎一些经验丰富的 jQuery 退伍军人提出意见和帮助,以指出为什么它有效 :-) ...也许这与选择器更具体有关。
我尝试 select 所有具有特定属性的 div,但这个属性不是特定属性。
$("[data-minut = '23']") // this works
似乎这个 select 除了 attr 23 之外的所有东西。我想要 select 所有具有 attr 数据分钟但这个 attr 不是 23 的 div:
$("[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>
只需使用:not
或.not()
$("[data-minut]:not([data-minut=23])")
// or
$("[data-minut]").not("[data-minut=23]")
not
从集合中删除指定的选择器。这里排除了具有 data-minut=23
的元素,并包含其他元素。
如果您在选择器中添加 div
,您的代码就可以工作。否则它还会将 body
更改为黄色背景色,因为您没有告诉 jQuery 您只想更改没有指定属性的 div 的颜色,所以它将更改不包含该属性的每个节点的颜色。
http://jsfiddle.net/3jbf2wwh/3/
$("div").click(function() {
$("div[data-minut != '23']").css("background-color","yellow");
});
我希望它能按预期工作,方法是在选择器的开头添加 div
:
$("div").click(function() {
$("div[data-minut != '23']").css("background-color","yellow");
});
现在所有具有 data data-minut 属性且其值不同于 23 的 div 都被突出显示为 yellow
background-color
。如果您问它为什么有效,那么我仍在努力解决这个问题,我欢迎一些经验丰富的 jQuery 退伍军人提出意见和帮助,以指出为什么它有效 :-) ...也许这与选择器更具体有关。