【问题标题】:jQuery get all divs which do not have class attributejQuery获取所有没有类属性的div
【发布时间】:2010-12-30 01:17:48
【问题描述】:

获取所有具有类属性的div

$('div[class]')

获取所有没有class属性的div

$('div[class!=""]')

此代码有效,但我不明白它为什么有效。如果上面的代码有效,那么所有具有类属性的 div 的代码应该是

$('div[class=""]') 

不会产生任何结果。

【问题讨论】:

  • 我不明白为什么这个条目有这么多投票 - 它甚至没有提出任何问题。

标签: jquery jquery-selectors


【解决方案1】:

试试:not() pseudo-class selector:

$('div:not([class])')

编辑

jQuery selectors 的描述说:

这意味着div[class=""] 将选择所有具有指定为空值的class 属性的DIV 元素。

但最后一个选择器是 jQuery 的专有选择器,而不是 CSS selector。您需要使用 :not() 来选择所有没有类的 DIV 元素:

div:not([class])

【讨论】:

  • hmm .. 这不能回答提出的问题。
  • @Scott Evernden:嗯,事实上我看不到任何问题。 ;)
  • 对于多个not 情况,您可以执行div:not([class], [style]) 之类的操作
【解决方案2】:

重要的是要认识到,有类属性以及没有类属性的元素,但是它们需要不同的测试来选择。

有许多测试都做不同的事情。这是我们用于测试的 HTML:

<div class="">Empty Class Attribute </div>
<div class="column">Full Class Attribute </div>
<div>No Class Attribute </div>

现在,让我们运行我们的测试(第一部分只是一个字符串,可以帮助我们知道刚刚在警报中调用了什么,否则它是没有意义的)

$(document).ready(function(e){
  // Outputs "Empty Class Attribute Full Class Attribute"
  alert( "div[class] : "     + $('div[class]').text()     );

  // Outputs "Full Class Attribute"
  alert( "div[class!=''] : " + $('div[class!=""]').text() );

  // Outputs "Empty Class Attribute" 
  alert( "div[class=''] : "  + $('div[class=""]').text()  );

  // Outputs "No class Attribute"
  alert( "div:not([class]) : " + $('div:not([class])').text()     );
});

您可以通过访问此处在浏览器中查看此代码:http://jsbin.com/ijupu

现在,有了这些知识,如果您想选择页面上的每个 div 元素,无论是空白属性还是无属性,请使用以下选择器:

$("div[class=''], div:not([class])");

【讨论】:

    【解决方案3】:

    $('div[class=""]') 选择器本质上是这样写的:“获取所有 class 属性具有空字符串作为其值的 div 元素。” - 排除所有在 class 属性中具有 ANY 值的 div 元素,除了空字符串,以及根本没有设置类属性的所有 div 元素。

    【讨论】:

      【解决方案4】:

      试试

      jQuery('div[class^=""]')
      

      $('div[class^=""]')
      

      这意味着获取所有具有任何名称的类的div

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-20
        • 2010-11-23
        • 2021-07-07
        • 2020-06-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多