簡體   English   中英

jQuery-如何檢查跨度是否有一個類,如果不存在則添加一個類

[英]JQuery - How to check if a span has a class and add a class if one doesnt exist

我需要一些jquery代碼的幫助,以檢查span是否具有一個類。 如果它沒有類,則將class customtab添加到該范圍。 如何在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");
  }
});

您要檢查什么類,以及何時檢查(例如,單擊時,頁面何時加載,懸停等)。

要檢查,有一個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"); 
    }
});

嘗試:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM