如果我有这样的东西:
function foo(class){
for(i=0; i<(class.length);i++){
return document.getElementsByClassName(class)[i];
}
}
现在我想做这样的事情:
foo("someclass").innerHTML="something";
它只会对第一个元素执行此操作,我理解为什么会发生这种情况以及如何使其正常工作,但是我如何才能使该函数获得其他方法而不在循环中确切地告诉它该做什么,就像这样
foo("someclass").innerHTML="something";//this to put something inside the element
foo("someclass").style.backgroundColor="#000");// and this to work also
那么,如果可能的话,我怎样才能使函数执行此操作而不将这些方法放入 foo 函数循环中?有没有办法把这些方法放在这样的变量中
function foo(class).variableMethod{
for(i=0; i<(class.length);i++){
document.getElementsByClassName(class)[i].variableMethod;
}
这可能吗?
最佳答案
您可以将一个函数传递给 foo()
,然后让 foo()
对每个匹配的元素调用该函数:
function foo(className, func)
{
var elements = document.getElementsByClassName(className);
for (var i = 0; i < elements.length; ++i) {
func(elements[i]);
}
}
现在你可以这样做:
foo("someclass", function(element) {
element.innerHTML = "something";
element.style.backgroundColor = "#000";
});
关于javascript - 如何让一个类在不事先指定方法的情况下接受一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6774063/