我试图选择某个类的多个 div 元素,但没有某些数据属性。例如,我有 12 个 div,其数据属性从 1 到 12,我想选择除数据属性为 1、11 和 12 之外的所有 div。这是迄今为止我的(不起作用)代码:
$('div.randomize_class [data-value!=1],[data-value!=11],[data-value!=12]');
目的是仅对匹配的 div 进行打乱,并最终将属性为 1、11 和 12 的 div 添加到末尾。混洗函数工作得很好,它只是选择 select 类的子集。
所以在洗牌之后,我只想选择那些数据属性为 1、11 和 12 的数据。我尝试了以下方法:
$('.randomize_class [data-value=1],[data-value=11],[data-value=12]')
很高兴获得任何帮助!非常感谢。
最佳答案
您应该使用.filter()
与属性值选择器结合使用。
仅选择数据属性为 1、11 和 12 的数据
$('.randomize_class').filter('[data-value=1],[data-value=11],[data-value=12]')
选择除数据属性 1、11 和 12 之外的所有属性。 :not() Selector或.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]');
关于jQuery 选择类但不选择某些数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34741543/