同时迭代jQuery中的两组元素

时间:2009-03-06 05:19:02

标签: jquery

我有一个表,在不同的列中包含许多对文本输入字段。我想迭代第一列中的输入字段,并使用这些值来设置相邻列中相应输入字段的值。

<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 个答案:

答案 0 :(得分:6)

您想要做的事情被称为“拉链”操作。这在函数式编程语言中可以看到很多东西。它是一个将两个相等长度的序列组合成一个包含一对(或n元组)元素的序列的函数。

在这里,您可以找到jquery的'zip'实现。这是一个jQuery插件。 Available on Google Code

看起来你可以像使用它一样使用它:

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

答案 1 :(得分:2)

有很多方法可以做到这一点。这是一个。

$("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);
});

等等。