【问题标题】:jQuery check if Attr Class exists?jQuery 检查 Attr 类是否存在?
【发布时间】:2011-07-28 12:56:11
【问题描述】:

如何确定.attr('class') 是否存在?

我正在使用此代码:

if(jQuery(this).attr('class') != undefined && jQuery(this).hasClass('myclass')) {
  //Do something
}

它似乎不起作用。

【问题讨论】:

  • 只是想知道为什么要检查 attr 类是否存在。 hasClass 将检查它是否有一个类并且通常足够
  • 它会检查它是否是undefined 吗?
  • @Tom:函数正在执行它所说的。如果class 属性不存在或为空,则显然该元素没有类。你为什么不试试看:jsfiddle.net/sP9YR

标签: javascript jquery class html


【解决方案1】:

这取决于你想要什么。是否要检查一个元素是否有class属性,如:

<div class></div>
<div class=""></div>
<div class="abc"></div>

如果是这样,请使用:

if ($('div').attr('class') != undefined)...

如果您要检查元素是否具有特定类,请使用:

if ($('div').hasClass('abc'))...

【讨论】:

  • 如果我想同时检查这两个怎么办?还是hasClass 隐含地这样做了?
  • 是的,如果一个元素没有 class 属性,而你有,比如 $(...).hasClass('abc'),它只会自动返回 false。
【解决方案2】:

试试这个..

if(jQuery('#id1').attr('class') =="") {
       alert($('#id1').attr('class'));
  }

&lt;div id="id1"&gt;test&lt;/div&gt;

【讨论】:

    【解决方案3】:

    您可以通过在 jquery 对象上调用 'length' 来检查是否存在具有任何类的元素。

    $('.myclass').length
    

    【讨论】:

      【解决方案4】:

      如果属性类不存在,则返回值为 null 或空字符串。

      【讨论】:

        【解决方案5】:

        此代码实际有效:fiddle

        HTML:

        <div></div>
        <div class="myclass"></div>
        <div class="blah"></div>
        <div></div>
        <div class="myclass"></div>
        <div class="myclass"></div>
        <div></div>
        <div class="myclass andAnotherClass"></div>​
        

        JS:

        $("div").each(function(){
        if(jQuery(this).attr('class') != undefined && jQuery(this).hasClass('myclass')) {
          jQuery(this).html("I have it");
              } else {
                  jQuery(this).html("I don't have it");
              }
        });​
        

        【讨论】:

          猜你喜欢
          • 2021-07-26
          • 2012-06-28
          • 2011-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-05
          • 2018-09-21
          相关资源
          最近更新 更多