jQuery select class 但不是某些数据属性

jQuery select class but not certain data attributes

我正在尝试 select 某些 class 的多个 div 元素,但没有某些数据属性。例如,我有 12 个 div 的数据属性从 1 到 12,我想 select 除了那些数据属性为 1、11 和 12 的数据之外的所有数据。这是我的(不工作的)代码到目前为止:

$('div.randomize_class [data-value!=1],[data-value!=11],[data-value!=12]');

目的是仅混洗匹配的 divs 并最终在末尾附加属性 1、11 和 12。洗牌功能很好用,它只是 selecting select class.

的一个子集

所以在洗牌之后,我只想 select 那些具有数据属性 1、11 和 12 的数据。我试过这个:

$('.randomize_class [data-value=1],[data-value=11],[data-value=12]')

很乐意提供任何帮助!非常感谢。

您应该将 .filter() 与属性值 select 或

结合使用

到select只有数据属性为1、11和12的那些

$('.randomize_class').filter('[data-value=1],[data-value=11],[data-value=12]')

到select除数据属性1、11、12以外的所有:not() Selector or .not()功能排除元素

 $('.randomize_class').filter(':not([data-value=1]),:not([data-value=11]),:not([data-value=12])')

$('div.randomize_class').not('[data-value=1],[data-value=11],[data-value=12]');

您需要使用 .not() 来排除那些项目

$('div.randomize_class').not('[data-value!=1],[data-value!=11],[data-value!=12]');

您的选择器 .randomize_class [data-value=1],[data-value=11],[data-value=12] 将使用 data-value=1 获取 randomize_class 下的所有元素以及使用 data-value=11data-value=12[=17= 获取页面中的所有元素]

你说过你们都想 selectdata-value=1(以及11和12),而且你想要。


对于不是的情况,可以使用:not:

$('div.randomize_class:not([data-value=1]):not([data-value=11]):not([data-value=12])');

...它的优点是也可以在 CSS 中工作(我不认为这真的适用于此),前提是您只在 :not 中使用 simple selectors(如 CSS 定义 :not 只需要简单的 select 或;jQuery 更进一步)。

或其堂兄 .not:not 文档建议通常是更好的选择):

$('div.randomize_class').not('[data-value=1], [data-value=11], [data-value=12])');

对于 selecting data-value=1(以及 11 和 12)的选项,您可以使用简单的属性 select或系列:

$('div.randomize_class[data-value=1], div.randomize_class[data-value=11], div.randomize_class[data-value=12])');
 $('.randomize_class:not([data-value="1"],[data-value="11"],[data-value="12"])')