【问题标题】:How do I use the :not() selector for many values in js如何在 js 中为多个值使用 :not() 选择器
【发布时间】:2021-08-21 02:55:58
【问题描述】:

我在 js 上编码,我试图获取所有具有类“some-class”、名称为“someName[]”的复选框,而不是值为“typeOf : category”的复选框。像这样的:

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

我正在尝试这样的事情:

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

这不起作用。我想你们可以帮助我。谢谢大家:)

【问题讨论】:

    标签: javascript jquery jquery-selectors


    【解决方案1】:

    使用 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[]">

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-01-31
        • 1970-01-01
        • 2023-03-09
        • 2013-01-30
        • 2011-10-31
        • 1970-01-01
        • 1970-01-01
        • 2011-09-04
        • 2017-06-30
        相关资源
        最近更新 更多