【发布时间】:2012-03-19 22:06:54
【问题描述】:
只有在元素没有类的情况下,如何将类添加到元素中?假设我们不知道元素是否有class="desired_class ...,但我们想确保它有。
【问题讨论】:
标签: javascript jquery html css class
只有在元素没有类的情况下,如何将类添加到元素中?假设我们不知道元素是否有class="desired_class ...,但我们想确保它有。
【问题讨论】:
标签: javascript jquery html css class
另外,您可以使用classList 属性,它是add() 方法:
var element = document.getElementById('myElement');
element.classList.add('myClass');
只有当元素没有类名时才会添加类名。
更多关于classList:
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList
【讨论】:
试试这个
var elem = $('selector');
if(!elem.hasClass('desired_class')){
elem.addClass('desired_class');
}
【讨论】:
我编写了一个仅限 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>
【讨论】:
使用下面的代码在普通的 javascript 中检查类的存在。这里我在检查 el (element) 有没有 tempClass
var el = document.getElementById("div1");
...
if (el.classList.contains("tempClass")){
return true;
}
【讨论】:
if ($('element').hasClass('some_class')) {
$('element').addClass('class_name');
}
【讨论】:
$('element').addClass('class_name'); jquery 会为你检查类的存在
您确定只使用 JQuery 吗?你可以用简单的 JavaScript 来做到这一点
document.getElementById("elementId").getAttribute("class")
如果类属性不存在,会给你 null。
【讨论】:
if (!$("your_element").hasClass("desired_class")) {
$("your_element").addClass("desired_class");
}
【讨论】:
这个问题的更新答案是使用toggleClass
$( "element" ).toggleClass( "className" );
【讨论】: