【问题标题】:Select div WITH specific attr and NOT specific value选择具有特定属性而不是特定值的 div
【发布时间】:2015-01-21 14:44:39
【问题描述】:

我尝试选择所有具有特定属性但该属性不是特定属性的 div。

$("[data-minut = '23']") // this works    

这似乎选择了除 attr 23 之外的所有其他内容。我想选择所有具有 attr 数据分钟但该 attr 不是 23 的 div:

$("[data-minut != '23']") 

这是要检查的示例:http://jsfiddle.net/3jbf2wwh/

jQUERY:

$("div").click(function() { 
    $("[data-minut != '23']").css("background-color","yellow");
});

CSS:

.blue {
    margin:0 auto;
    width:80px; height:30px;
    margin-bottom:20px;
    cursor:pointer;
    background-color:blue;
}

HTML:

<div class="blue" data-minut='23'></div>
<div class="blue" data-minut='24'></div>
<div class="blue" data-minut='25'></div>

【问题讨论】:

    标签: jquery attr


    【解决方案1】:

    只需使用:not.not()

    $("[data-minut]:not([data-minut=23])")
    // or
    $("[data-minut]").not("[data-minut=23]")
    

    not 从集合中删除指定的选择器。这里排除了具有data-minut=23 的元素,包括其他元素。

    【讨论】:

      【解决方案2】:

      如果您在选择器中添加 div,您的代码将有效。否则,它也会将body 更改为黄色背景色,因为您没有告诉 jQuery,您只想更改没有指定属性的 div 的颜色,因此它会更改不包含的每个节点的颜色那个属性。

      http://jsfiddle.net/3jbf2wwh/3/

      $("div").click(function() { 
          $("div[data-minut != '23']").css("background-color","yellow");
      });
      

      【讨论】:

        【解决方案3】:

        我希望通过在选择器的开头添加div 使其按预期工作:

        $("div").click(function() { 
            $("div[data-minut != '23']").css("background-color","yellow");
        });
        

        现在所有具有 data-data-minut 属性且其值不同于 23 的 div 都用yellow background-color 突出显示。如果您问它为什么起作用,那么我仍在努力解决这个问题,我欢迎 cmets 和一些更有经验的 jQuery 退伍军人的帮助指出为什么它起作用:-) ...也许这与选择器更具体的事实有关。

        Fiddle

        【讨论】:

        • 你为什么在我写完后 5 分钟就把我的答案抄下来了?
        • @HowardRenollet,巧合的是,我们有相同的答案,但我没有复制它!最重要的是,我想我至少花了几分钟的时间来写一些解决方案为什么有效的理由——我希望我有 jQuery 技能来写出像你的答案一样的彻底解释。在我发表我的答案之前,我仍然认为 Amit Jokim 的答案是唯一的答案。所以我的cmets无论如何也不是要讽刺,只是有点幽默地指出我无法提供彻底的答案。顺便说一句,我给你投票了:-)
        • 这很酷,它发生了。我也遇到过同样的事情,我正在非常努力地回答答案,然后我一提交,其他人已经发布了完全相同的事情。很酷,我只需要给你打电话:-)
        • @HowardRenollet 好的,不用担心 :-)
        猜你喜欢
        • 2010-11-02
        • 2012-11-30
        • 1970-01-01
        • 2012-06-08
        • 1970-01-01
        • 2021-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多