如何在 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[]">
我在 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[]">