如果只有元素已经没有它,如何添加类?

时间:2012-03-01 11:57:54

标签: javascript jquery html css class

如果只有元素已经没有它,如何将它添加到元素中?假设我们不知道该元素是否有class="desired_class ...,但我们想确保它有。{/ p>

8 个答案:

答案 0 :(得分:28)

此外,您可以使用classList属性及其add()方法:

var element = document.getElementById('myElement');
element.classList.add('myClass');

只有在元素没有的情况下才会添加类名。

有关classList的更多信息: https://developer.mozilla.org/en-US/docs/Web/API/Element/classList

答案 1 :(得分:7)

试试这个

var elem = $('selector');
if(!elem.hasClass('desired_class')){
  elem.addClass('desired_class');
 }

答案 2 :(得分:4)

我编写了一个仅限JavaScript的函数,在将该类添加到元素之前检查该类是否存在。 (您可以随时使用此处提到的$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=MYSECRETCODEHERE&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']); if($response["success"] == false){ echo('spam'); }else{ echo('not spam'); } ,但对此的支持始于IE10。)

classList
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);

答案 3 :(得分:1)

if ($('element').hasClass('some_class')) {
   $('element').addClass('class_name');
}

答案 4 :(得分:1)

您确定只想使用JQuery吗?你可以用简单的JavaScript

来做到这一点
    document.getElementById("elementId").getAttribute("class")
如果class属性不存在,

将为null。

答案 5 :(得分:1)

使用下面的代码在普通的javascript检查类存在。我在这里检查el(元素)是否有tempClass

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

...

if (el.classList.contains("tempClass")){
   return true;
}

答案 6 :(得分:0)


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

答案 7 :(得分:0)

此问题的更新答案正在使用toggleClass

 $( "element" ).toggleClass( "className" );

http://api.jquery.com/toggleclass/

相关问题