在angular2中通过class获取的selector的所有元素中添加一个class

Add a class in all the elements of selector get by class in angular2

我正在通过以下代码获取元素引用,我想添加一个 class 并从我获取的所有元素中删除一个 class。

app.component.html

<ul>
   <li class="option-btn cm-grey" />option 1</li>
   <li class="option-btn cm-grey" />option 1</li>
   <li class="option-btn cm-grey" />option 1</li>
</ul>

app.component.ts

var allbtn = document.querySelectorAll('.option-btn');
allbtn.removeClass('cm-grey');
allbtn.addClass('cm-blue');

以上代码无效。

请使用class列表

allbtn.classList.add("mystyle");

注意:Internet Explorer 9 不支持 classList 属性。以下代码适用于所有浏览器:

function myFunction() {
    var element, name, arr;
    element = document.getElementById("myDIV");
    name = "mystyle";
    arr = element.className.split(" ");
    if (arr.indexOf(name) == -1) {
        element.className += " " + name;
    }
}

同样

allbtn.classList.remove("mystyle");

跨浏览器解决方案

function myFunction() {
    var element = document.getElementById("myDIV");
    element.className = element.className.replace(/\bmystyle\b/g, "");
}

如果您想获得跨浏览器支持(我鼓励这样做)并使这些函数可重用,您可以进一步将 class 名称作为参数传递给这些函数。