我有以下代码对给定列表中每个DOM-Element的classList执行操作。
function editClassListOfElements(elements, className, operation) {
switch (operation) {
case "add":
[].forEach.call(elements, function (element) {element.classList.add(className)});
break;
case "remove":
[].forEach.call(elements, function (element) {element.classList.remove(className)});
break;
case "toggle":
[].forEach.call(elements, function (element) {element.classList.toggle(className)});
break;
default:
break;
}
}
我希望将其更改为:
function editClassListOfElements(elements, className, operation) {
[].forEach.call(elements, function (element) {element.classList. + operation + (className)});
}
如果可以的话,怎么做?
答案 0 :(得分:3)
您可以使用括号访问对象的字段。
element.classList.add
相当于element.classList["add"]
。所以你可以element.classList[operation](className)
来调用classList
的函数,其名称类似于变量operation
的值。