.each jQuery迭代器调用正常函数,为什么不呢?

时间:2012-10-06 11:58:05

标签: jquery

我需要在jQuery.each()中使用/重用外部(普通)函数,如下所示:

function foo(index,ele){
    if(!($(ele).attr("href")) || $(ele).attr("href") == "") {
        $(ele).addClass("yellow");
    }        
}
// INCORRECT, but WHY??
$("a").each(foo(index,domEle));

Here a jsfiddle example包含正确和错误的案例。

1 个答案:

答案 0 :(得分:3)

因为你传递的是函数执行的结果,而不是函数本身

$("a").each(foo); // <-- this is how it should be written

在这种情况下,将传递对函数的引用,并且一切都按预期工作。

http://jsfiddle.net/zerkms/zTF22/1/