如何在 js 中对多个值使用 :not() 选择器

How do I use the :not() selector for many values in js

我在 js 上编码,我试图获取所有具有 class 'some-class'、名称 'someName[]' 而不是值为 [=20 的复选框=].像这样:

<input class="some-class" type="checkbox" value="{"typeOf": "category", "ids":["12345678"]}" name="someName[]">

我正在尝试这样的事情:

 checkboxes: $('.some-class[name="someName"]:not([value="typeOf : category"])'),

这没有用。我想你们可以帮助我。谢谢大家:)

使用value*=匹配value的子串。

并且由于您尝试匹配的字符串包含引号,因此您需要将它们放入选择器中。空格也必须与值完全匹配。

$('.some-class[name="someName"]:not([value*=\'"typeOf": "category"\'])')

使用 filter() 函数可能比创建丑陋的选择器更灵活

$('.some-class[name="someName[]"]').filter(function(){
   return !this.value.startsWith('{"typeOf": "category"') 
}).prop('checked', true)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Shouldn't match: <input class="some-class" type="checkbox" value='{"typeOf": "category", "ids":["12345678"]}' name="someName[]">

Should match: <input class="some-class" type="checkbox" value='foo' name="someName[]">