2012-03-01 103 views

回答

3

試試這個

var elem = $('selector'); 
if(!elem.hasClass('desired_class')){ 
    elem.addClass('desired_class'); 
} 
1
if ($('element').hasClass('some_class')) { 
    $('element').addClass('class_name'); 
} 
+0

這不會工作,因爲$(這)將不參考$(「元素」) – 2012-03-01 12:03:31

+0

好點!改變... – Alex 2012-03-01 12:04:22

+0

爲什麼不只是'$('element')。addClass('class_name');'jquery會檢查你的類的存在 – 2016-05-31 09:42:50

1

你確定你想只用jQuery來做到這一點?你可以用簡單的JavaScript來做到這一點。

document.getElementById("elementId").getAttribute("class") 

如果class屬性不存在,會給你null。

+0

這並不能解決問題。如果元素有一個類,但沒有你想添加的元素,該怎麼辦? – Zaz 2016-12-10 21:25:59

0
 

if (!$("your_element").hasClass("desired_class")) { 
    $("your_element").addClass("desired_class"); 
} 
 
+0

這不會工作,因爲$(this)不會引用$(your-element) – 2012-03-01 12:05:27

3

我寫檢查,如果類將它添加到元素之前存在JavaScript的唯一功能。通過使用下面的代碼(您可以隨時使用classList這裏提到的,但這種支持與IE10開始。)

function addClass(name, element) { 
 
    var classesString; 
 
    classesString = element.className || ""; 
 
    if (classesString.indexOf(name) === -1) { 
 
    element.className += " " + name; 
 
    } 
 
} 
 

 
var element = document.getElementById('some-element'); 
 

 
addClass("on", element); // Adds the class 'on' 
 
addClass("on", element); // Ignored 
 
addClass("on", element); // Ignored 
 

 
document.write('Element classes: ' + element.className);
<div id="some-element"></div>

1

在普通的JavaScript檢查類別的存在。在這裏,我檢查EL(元素)具有tempClass或不

var el = document.getElementById("div1"); 

... 

if (el.classList.contains("tempClass")){ 
    return true; 
} 
相關問題