将所有内容从一个表复制到另一个填充了输入框的表

时间:2012-11-05 13:19:19

标签: jquery html

我使用php动态创建了11个表,每个表上的每个单元格都包含一个输入文本框。

像这样:

<table>
<tr>
<td><input value="2" class="amount 1 " name="item_prices[10][000][1][1]" size="3" type="text"></td>
<td><input value="2" class="amount 2 " name="item_prices[10][000][1][2]" size="3" type="text"></td>
</tr>
<tr>
<td><input value="2" class="amount 1 " name="item_prices[10][001][1][1]" size="3" type="text"></td>
<td><input value="2" class="amount 2 " name="item_prices[10][001][1][2]" size="3" type="text"></td>
</tr>
</table>


<table>
<tr>
<td><input value="2" class="amount 1 " name="item_prices[25][000][1][1]" size="3" type="text"></td>
<td><input value="2" class="amount 2 " name="item_prices[25][000][1][2]" size="3" type="text"></td>
</tr>
<tr>
<td><input value="2" class="amount 1 " name="item_prices[25][001][1][1]" size="3" type="text"></td>
<td><input value="2" class="amount 2 " name="item_prices[25][001][1][2]" size="3" type="text"></td>
</tr>
</table>

等等......

11个表之间的唯一区别是输入名称,我想复制表之间的所有内容,例如从表1到表10,从表2复制到表6。

实现这一目标的最佳方法是什么?使用jQuery我必须走到每个输入框获取值然后复制到用户选择的目标表?

2 个答案:

答案 0 :(得分:1)

我认为,所有表格都在一个DIV中,所以我们可以通过divID检查这个...

试试这个,

var getamount="";
$("#div1").find("table tr td").each(function (i) {
     if (getamount == "")
        getamount = $('input:text', $(this)).val();
     else
       getamount = getamount + "_" + $('input:text', $(this)).val();
 });

alert('getamount_'+getamount);​

Live Demo

希望它能奏效。

答案 1 :(得分:1)

如果您可以依赖所有表格的文本框的数量和顺序相同,那么此代码将起作用:

function CopyTableInputs(sourceTableId, destinationTableId) {
    var oSource = $("#" + sourceTableId);
    var oDest = $("#" + destinationTableId);
    var arrSourceInputs = oSource.find("input");
    var arrDestInputs = oDest.find("input");
    arrDestInputs.each(function(i) {
        this.value = arrSourceInputs[i].value;
    });
});​

Live test case

为此你必须为每个表添加id,如果你想避免这一步并且你的文档中没有任何其他表,你可以稍微更改一下这个函数并使用索引:

function CopyTableInputs(sourceTableIndex, destinationTableIndex) {
    var oSource = $("table").eq(sourceTableIndex);
    var oDest = $("table").eq(destinationTableIndex);
    //...same as above
});​