javascript - 如何让一个类在不事先指定方法的情况下接受一个方法?

标签 javascript methods

如果我有这样的东西:

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/

相关文章:

javascript - 多个图像预览未显示

javascript - HTML5 <audio> 标签重置

javascript - 如何动态生成一个基本的kendoUI小部件?

scala - Scala 中可以实现方法参数转发吗?

c# - methods() 应该放在哪里?

c# - 该语言不支持“TEST”

javascript - 使用隐藏输入将 Javascript 变量传递给 PHP

javascript - jqGrid - 如何获取当前网格的标题?

javascript - 我试图为 Object 设计一个 length() 方法的原型(prototype)并破坏了 jQuery——怎么做到的?

python - 有没有办法在创建类(不是实例)时调用(静态)方法?