JQuery - 如何检查span是否有类,如果不存在则添加类

时间:2014-11-30 23:28:41

标签: javascript jquery html

我需要一些jquery代码的帮助来检查span是否有类。如果它没有类,则将class customtab添加到此span。我怎么能在jquery中做到这一点?

这是html菜单的示例。

<div class="menu">
    <ul>
        <li><a class="user_menu_link" href="#"><span class="menu1">Menu Item 1</span></a><li>
        <li><a class="user_menu_link" href="#"><span class="menu2">Menu Item 2</span></a></li>
        <li><a class="user_menu_link" href="#"><span class="menu3">Menu Item 3</span></a></li>
        <li><a class="user_menu_link" href="#"><span class="menu4">Menu Item 4</span></a></li>
    <li><a href="#"><span>Menu Item 5</span></a></li>
    </ul>
</div>

这是我尝试使用的代码,但不起作用。

$('ul a').each(function() {
  if ($(this).attr('class') == "") {
    $(this).find('span').addClass("customtab");
  }
});

我能够使用此代码使其正常工作。

$('ul a').each(function() {
  if ($(this).attr('class') === undefined) {
    $(this).find('span').addClass("customtab");
  }
});

2 个答案:

答案 0 :(得分:3)

您要检查什么课程,何时检查,例如点击,加载页面时,悬停等

要检查,有hasClass方法:

// $(this) being the element you are checking for the class
// this could be inside a click function for example
if ($(this).hasClass('menu1')) {
    $(this).addClass('customtab');
}

<强>更新

要检查无class属性,请尝试以下操作:

if ($(this).attr('class') === undefined) {
    $(this).addClass('customtab');
}

如果您不知道$(this)是什么,那么您可以通过遍历元素找到元素:

$('li a.user_menu_link span').each(function() {
    if ($(this).attr('class') === undefined) {
        $(this).addClass('customtab');
    }
});

http://jsfiddle.net/992g694f/

使用固定的HTML - http://jsfiddle.net/992g694f/1/

更新2

$('ul a').each(function() { 
    if($(this).attr('class') === undefined){    
        $(this).find('span').addClass("customtab"); 
    }
});

答案 1 :(得分:1)

尝试:

$(".menu a span").filter(function() {
    return this.className == '';
}).addClass('customtab');