1

我想找到容器内的所有元素,其中某个数据属性设置为 1,以及所有根本没有设置此属性的元素。

数据属性如下:

$("#element").data("activate")

它的值可以是 1 或 0。如果一个元素没有“激活”数据属性集,我想将其视为 0。

我目前有以下代码:

$("#content").find("[data-activate='0']").off();

但是我也想做这样的事情:

$("#content").find("all where data-activate NOT exists").off();

即,如果一个元素甚至没有设置属性。

4

4 回答 4

3

您可以使用:not

$('#content :not([data-activate])').off();

或者filter()

$('#content div').filter(function() {
    return !$(this).attr('data-activate');
}).off();
于 2013-01-07T12:34:48.447 回答
3
$("#content").find(":not([data-activate])").off();
于 2013-01-07T12:34:57.700 回答
0

您可以一次使用两个选择器来选择元素,用逗号分隔它们(选择器)

  1. :not() 选择器
  2. 属性等于选择器

    $("#content [data-activate='0'], #content :not([data-activate])").off();

于 2013-01-07T12:39:38.987 回答
0

尝试

$("#content div").map(function {
    $(this).data("activate","1") 
}

这将简单地将 data-activate = 1添加到 #content 内的所有 div 中,无论它是 0 还是该属性不存在

于 2013-01-07T12:39:48.683 回答