1

次のように、jQuery.each() に外部 (通常の) 関数を使用/再利用する必要があります。

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

ここでは、正しいケースと正しくないケースを含む jsfiddle の例を示します。

4

1 に答える 1

3

関数自体ではなく、関数の実行結果を渡しているためです

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

この場合、関数への参照が渡され、すべてが期待どおりに機能します。

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

于 2012-10-06T11:59:47.477 に答える