1

関数fooにjqueryでラップされたノードを引数として使用させます。ノードセットでこの関数を実行するためのより洗練された方法はありますか?

私のやり方:

$('.for-foo').each(function () {
    foo($(this));
});
4

3 に答える 3

2

あなたはそれをプラグインにすることができます:

$.fn.foo = function(){
  return this.each(function(){
    // do something to each element "this"
  });
};

使用法:

$('.for-foo').foo();

これにより、他のjQuery関数とチェーン可能になります。

于 2012-07-14T17:07:28.247 に答える
1

次のように、選択範囲を関数に渡すことができます。

foo($(".for-foo"));

関数fooは次のようになります。

function foo(selection) {
    selection.each(function() {
        // do stuff with each current node
    });
}

foo厄介ですが、少なくとも呼び出す方がはるかにクリーンです。

于 2012-07-14T17:00:24.517 に答える
0

あなたの目的はfoo()明確ではなく、答えはそれによって異なる場合があります。典型的な例の1つは次のとおりです。

function foo($el) {
    $el.css('color', function(i) {
        return ['black', 'green', 'yellow', 'blue', 'red'][i];
    });
}
foo( $('.for-foo') );

作業サンプル

于 2012-07-14T17:05:50.833 に答える