2009-03-06 14 views
2

複数のテキスト入力フィールドのペアが別々の列に含まれているテーブルがあります。私は、最初の列の入力フィールドを反復し、それらの値を使用して、隣接する列の対応する入力フィールドの値を設定します。jQueryで2つの要素を同時に反復する

<table> 
    <tr> 
     <td><input type="text" class="left" /></td> 
     <td><input type="text" class="right" /></td> 
    </tr> 
    <tr> 
     <td><input type="text" class="left" /></td> 
     <td><input type="text" class="right" /></td> 
    </tr> 
    ... 
</table> 

私はちょうどjQueryを学び始めているので、おそらく答えは明らかです。これまでのところ私はただ持っています

$("input.left").each(function() { 
    // use the value of $(this) to set the 
    // value of the text field to the .right 
}) 

答えて

2

これを行う方法はたくさんあります。ここに1つあります。

$("tr").each(function() { 
    $(this).find(":last-child input").val($(this).find(":first-child input").val()); 
}); 

または別:

$("input.left").each(function() { 
    $(this).parent().nextSibling().find("input.right").val(this.value); 
}); 

のように。

6

あなたがしたいことは、「ジップ」操作と呼ばれます。これは関数型プログラミング言語ではかなり多く見られます。これは、等しい長さの2つのシーケンスを、要素のペア(またはnタプル)を含む単一のシーケンスに結合する関数です。

ここでは、jqueryの 'zip'の実装を見つけることができます。これはjQueryプラグインです。あなたはtihsのようにそれを使用することができますように見えますAvailable on Google Code

$.zip($("input.left"), $("input.right")).each(function() { 
    var left = this[0]; 
    var right = this[1]; 
}) 
+0

は、これが存在していた知りませんでした! – alex

+0

私も。 OPは基本的なjQuery構文/ selectros/etcを学ぶことにもっと関心があると思うが、これはかなりクールなプラグインである。 – cletus