Javascript CSS选择器允许一件事,但不允许另一件事?

Javascript CSS选择器允许一件事,但不允许另一件事?,javascript,jquery,css,Javascript,Jquery,Css,简言之,我正在尝试根据id获取项目的子集合。我正在尝试获取1-1、1-1-0、1-1-1,但不是1-19、1-19-0、1-19-1。有没有办法做到这一点 $(函数(){ //获取所有项目,但只需要1-1个项目。 $('[data parent id^=1-1]')。prop('checked',true); //没有抓住第一项1-1。 $('[data parent id^=1-2-]').prop('checked',true); }); 如果我正确理解了您的问题,这将起到以下作用: $(

简言之,我正在尝试根据id获取项目的子集合。我正在尝试获取
1-1、1-1-0、1-1-1
,但不是
1-19、1-19-0、1-19-1
。有没有办法做到这一点

$(函数(){
//获取所有项目,但只需要1-1个项目。
$('[data parent id^=1-1]')。prop('checked',true);
//没有抓住第一项1-1。
$('[data parent id^=1-2-]').prop('checked',true);
});

如果我正确理解了您的问题,这将起到以下作用:

$('[data-parent-id="1-1"], [data-parent-id^="1-1-"]').prop('checked',true);

说明:选择器的第一部分完全获取
1-1
,第二部分获取以
1-1-
开头的任何内容如果我正确理解了您的问题,这将实现以下功能:

$('[data-parent-id="1-1"], [data-parent-id^="1-1-"]').prop('checked',true);

说明:选择器的第一部分完全获取
1-1
,第二部分获取以
1-1-
开头的任何内容如果我正确理解了您的问题,这将实现以下功能:

$('[data-parent-id="1-1"], [data-parent-id^="1-1-"]').prop('checked',true);

说明:选择器的第一部分完全获取
1-1
,第二部分获取以
1-1-
开头的任何内容如果我正确理解了您的问题,这将实现以下功能:

$('[data-parent-id="1-1"], [data-parent-id^="1-1-"]').prop('checked',true);

说明:选择器的第一部分准确地获取
1-1
,第二部分获取以
1-1-
开头的任何内容。这里有一种方法,使用选择器:

$('[data-parent-id^=1-1]:not([data-parent-id^=1-19])').prop('checked',true);
其中:

  • [数据父id^=1-1]
    匹配以
    1-1
    开头的所有属性:
    • 1-1
    • 1-1-0
    • 1-1-1
    • 1-19
    • 1-19-0
    • 1-19-1
  • :not([data parent id^=1-19])
    排除以
    1-19开始的所有属性:
    
    • 1-19
    • 1-19-0
    • 1-19-1

    • 这里有一种方法,使用选择器:

      $('[data-parent-id^=1-1]:not([data-parent-id^=1-19])').prop('checked',true);
      
      其中:

      • [数据父id^=1-1]
        匹配以
        1-1
        开头的所有属性:
        • 1-1
        • 1-1-0
        • 1-1-1
        • 1-19
        • 1-19-0
        • 1-19-1
      • :not([data parent id^=1-19])
        排除以
        1-19开始的所有属性:
        
        • 1-19
        • 1-19-0
        • 1-19-1

        • 这里有一种方法,使用选择器:

          $('[data-parent-id^=1-1]:not([data-parent-id^=1-19])').prop('checked',true);
          
          其中:

          • [数据父id^=1-1]
            匹配以
            1-1
            开头的所有属性:
            • 1-1
            • 1-1-0
            • 1-1-1
            • 1-19
            • 1-19-0
            • 1-19-1
          • :not([data parent id^=1-19])
            排除以
            1-19开始的所有属性:
            
            • 1-19
            • 1-19-0
            • 1-19-1

            • 这里有一种方法,使用选择器:

              $('[data-parent-id^=1-1]:not([data-parent-id^=1-19])').prop('checked',true);
              
              其中:

              • [数据父id^=1-1]
                匹配以
                1-1
                开头的所有属性:
                • 1-1
                • 1-1-0
                • 1-1-1
                • 1-19
                • 1-19-0
                • 1-19-1
              • :not([data parent id^=1-19])
                排除以
                1-19开始的所有属性:
                
                • 1-19
                • 1-19-0
                • 1-19-1

                • 我认为穆塞曼的解决方案是最简单的。您还可以使用regex并以更高的精度过滤元素:


                  我认为穆塞曼的解决方案是最简单的。您还可以使用regex并以更高的精度过滤元素:


                  我认为穆塞曼的解决方案是最简单的。您还可以使用regex并以更高的精度过滤元素:


                  我认为穆塞曼的解决方案是最简单的。您还可以使用regex并以更高的精度过滤元素: