1

私のタイトルは完全に表現されていない可能性があります。申し訳ありません。基本的に、私がやりたいことはこれです:

newc = 'wow'
    jQuery(".bleh").each(function(i){
       var bluh = *this changes with everytime this statement is run. lets call it x1, x2 and so on*
       var newc = bluh + newc
    });

.each() 関数が 2 回だけ実行されるとします (クラス "bleh" を持つ要素が 2 つあるため)。私はnewc今する必要があります'x2x1wow'
最初に実行したときと同じように、if bluh (x1)'wow'の値を (newc の初期値)
に追加します'x1wow'newc = x2x1wow

どうすればこれを達成できますか?

4

1 に答える 1

2

関数の外で変数を作成する必要があります。そうしないと、関数が終了したときに変更が失われます。

var newc = 'wow'
jQuery(".bleh").each(function(i)
{
   var bluh = *this changes with everytime this statement is run. lets call it x1, x2 and so on*
   newc = bluh + newc
});

問題は、変数がローカル変数として宣言され、反復ごとにリセットされるeachコールバック内にありました。newc必要なのはnewc、ループの外側で宣言されているクロージャー変数を変更することです。そのためvar、コールバック関数でを削除するだけです

デモ:フィドル

于 2013-07-22T03:17:13.773 に答える