2

我用 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我必须步行为每个输入框获取值,然后复制到用户选择的目标表?

4

2 回答 2

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);​

现场演示

希望它会工作。,

于 2012-11-05T13:32:23.383 回答
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;
    });
});​

现场测试用例

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

function CopyTableInputs(sourceTableIndex, destinationTableIndex) {
    var oSource = $("table").eq(sourceTableIndex);
    var oDest = $("table").eq(destinationTableIndex);
    //...same as above
});​
于 2012-11-05T13:42:54.120 回答