2012-03-01 106 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; 
} 
相关问题