Javascript 在具有空格分隔值的自定义标记中查找包含特定值的元素

Javascript 在具有空格分隔值的自定义标记中查找包含特定值的元素,javascript,jquery,html,css,css-selectors,Javascript,Jquery,Html,Css,Css Selectors,想象一下我有这样的东西: <li tags="1 3 "></li> <li tags="2 3 "></li> <li tags="4 "></li> 标签由空格分隔。我脑子里想的是通过作为自定义属性放入的标记来查找s,这样就不会再进行另一次查询,只是为了找到选中标记的项目 是否还有其他方法,例如,查找所有带有标签3的,结果如下: result= 所以我可以把它放在容器中,比如$('.container').ht

想象一下我有这样的东西:

<li tags="1 3 "></li>
<li tags="2 3 "></li>
<li tags="4 "></li>
  • 标签由空格分隔。我脑子里想的是通过作为自定义属性放入的标记来查找
  • s,这样就不会再进行另一次查询,只是为了找到选中标记的项目

    是否还有其他方法,例如,查找所有带有标签
    3
  • ,结果如下:

    result=
  • 所以我可以把它放在容器中,比如
    $('.container').html(result)

    或者更好的方法:找到没有该标记的
  • s并添加
    display:none的css属性


    我认为后者更有效。

    是的,您可以使用
    ~=
    :查找
    li
    元素,这些元素在
    标记中有“3”
    属性值:

    $('li[tags~=3]');
    
    并使用
    :not()
    选择器查找没有“3”的元素并隐藏它们:

     $('li:not([tags~=3])').hide();
    

    如果要将
    li
    作为特定类的目标,请使用
    li.class

    是的,您可以使用
    ~=
    :查找
    li
    元素,这些元素在
    标记中具有“3”
    属性值:

    $('li[tags~=3]');
    
    $(document).ready(function ()
            {
                var a = $("[tags*='3']");
    
            });
    
    并使用
    :not()
    选择器查找没有“3”的元素并隐藏它们:

     $('li:not([tags~=3])').hide();
    
    如果要将
    li
    作为特定类的目标,请使用
    li.class

    $(document).ready(function ()
            {
                var a = $("[tags*='3']");
    
            });
    
    它将导致您的li在标记属性中包含3个。可选值为var
    a=$(“li[tags*='3'])


    它将导致你的标签属性中包含3个标签。另一种选择是var
    a=$(“li[tags*='3'])

    是否有类似于
    li[tags!~=3]
    的内容?我想我发现我的答案会回到你的脑海中。它工作起来很有魅力,是否也需要添加一个类?我的意思是如果我想把我的李老师和一个像项目这样的班级分开。我希望它只对它们起作用。
    $('li.project:not([tags~=3])).hide()这行得通吗?有没有像
    li[tags!~=3]
    这样的东西?我想我发现我的答案会回到你的脑海里的。太棒了,它就像一个符咒,无论如何也要添加一个类吗?我的意思是如果我想把我的李老师和一个像项目这样的班级分开。我希望它只对它们起作用。
    $('li.project:not([tags~=3])).hide()这行吗?这也将匹配13、23、31等等。这也将匹配13、23、31等等。