【问题标题】:javascript: Adding a class to an element that has no IDjavascript:向没有ID的元素添加类
【发布时间】:2013-08-03 01:08:11
【问题描述】:

有没有办法将类添加到没有 ID 但有一些现有类的元素(使用纯 javascript)?如果我有:

<div class="rightAlign pushDown">...</div>

我怎样才能添加一个类来使它像这样

 <div class="rightAlign pushDown redOutline">...</div>

这只是一个简单的例子。添加另一个类而不更改 CSS 中的原始类或完全使用 javascript 更改类的原因是我正在处理由 Dojo 创建的元素。我只需要访问一些没有方便的 ID 的东西。

请记住,我正在使用 javascript 和 Dojo,我根本无法使用 jQuery...

【问题讨论】:

标签: javascript css class dojo


【解决方案1】:

道场方式如下:

dojo.query(".rightAlign.pushDown").addClass("redOutline");

这将添加类以添加具有这两个类的元素

【讨论】:

  • 谢谢!我一直在寻找这样的东西!
  • 作为后续问题,removeClass 可以同样使用吗?
  • 是的,您也可以使用它。如果您想要根据是否存在自动添加或删除的东西,还有 dojo.toggleClass 。 dojotoolkit.org/reference-guide/1.7/dojo/toggleClass.html
【解决方案2】:
var elements = document.getElementsByClassName("existing_class");
elements[0].className += " new_class";

如果你想为所有具有指定类的元素添加一个类,那么使用循环:

for(var i = 0; i < elements.length; i++){
    elements[i].className =+ " new_class";
}

我认为getElementsByClassName 在旧的 IE 版本中不起作用。

编辑: Polyfill IE 支持

【讨论】:

  • 请记住 getElementsByClassName() 不返回数组,而是返回 HTMLCollection。
  • 谢谢,这两个答案都很有效。我接受 dojo 答案,因为它更简单,但如果有人不使用 dojo,这个答案效果很好,包括支持 IE 的 polyfill。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 2012-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
相关资源
最近更新 更多