javascript - 在javascript中选择并添加类

标签 javascript dom mootools

如果可能跨平台,我如何在无法添加 ID 的代码上选择 Javascript 中的类(但请不要选择 Jquery - MooTools 很好 -)? 具体来说,我想在下面的任何 li 上添加类“cf”:

HTML

<div class="itemRelated">
  <ul>
<li class="even">
<li class="odd">
<li class="even">

我试图摆弄它,但缺少一些东西:

Javascript

 var list, i;
list = document.getElementsByClassName("even, odd");
for (i = 0; i < list.length; ++i) {
    list[index].setAttribute('class', 'cf');
}

JSFiddle

附言。这个问题非常有可能duplicates , (另一个 one )但没有一个答案清楚。

最佳答案

使用纯 javascript:

var list;
list = document.querySelectorAll("li.even, li.odd");
for (var i = 0; i < list.length; ++i) {
   list[i].classList.add('cf');
}

Demo

对于旧版浏览器,您可以使用这个:

var list = [];
var elements = document.getElementsByTagName('li');
for (var i = 0; i < elements.length; ++i) {
    if (elements[i].className == "even" || elements[i].className == "odd") {
        list.push(elements[i]);
    };
}
for (var i = 0; i < list.length; ++i) {
    if (list[i].className.split(' ').indexOf('cf') < 0) {
        list[i].className = list[i].className + ' cf';
    }
}

Demo


使用 Mootools:

$$('.itemRelated li').addClass('cf');

Demo

或者如果您想按类别定位特定对象:

$$('li.even, li.odd').addClass('cf');

Demo

关于javascript - 在javascript中选择并添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21319503/

相关文章:

javascript - Mootools "Cannot read property ' 调用“未定义”

javascript - 使用本地 AJAX 请求解析 JSON 数据

javascript - 在 AngularJS 中使用 ui-router 进行路由

javascript - JQuery .hover() 和 .bind() 试图控制动画行为

javascript - 为什么jQuery或诸如getElementById之类的DOM方法找不到元素?

javascript - 跨域iframe问题

javascript - 为什么无法使用 nextElementSibling.focus() 和parentNode.children[0].focus() 将焦点设置在元素上?

javascript - Angular - 修改指令中 DOM 元素的正确方法?

Javascript document.write 和 DOM element.AppendChild(text) 之间的区别

javascript - 主动 AJAX 请求