我有个奇怪的问题。我们有带有id的数据属性的按钮。v1,v2和v3。
<table id="table-1" data-car-id="v1">
<tr><td>Header1</td></tr>
<tr><td>Content1 <input type="text" name="car[v1][marked][12]" /></td></tr>
<tr><td>Footer</td></tr>
</table>
<button id="copy-2" data-car-id="v2">Copy Table</button>
<table id="table-2">
</table>
<button id="copy-3" data-car-id="v3">Copy Table</button>
<table id="table-3">
</table>一小块Javascript将上表的正文复制到最近的下一个表。(这起作用)。
$("button[id^='copy']").click(function() {
var $carId = $(this).attr('data-car-id');
alert($carId);
var $prevTable = $(this).prev("table[id^='table-']").prop('innerHTML');
var $nextTable = $(this).next("table").html($prevTable);
});但现在棘手的是,应该替换tbody中所有输入的输入名。而市场应该保持不变
carv112 => carv212
我怎么能这么做?让它变得简单,并使用我创建的JSFiddle:https://jsfiddle.net/ra35z8ff/
发布于 2015-03-25 23:51:24
将HTML复制到下一个table元素后,选择所有的子input元素并对它们进行迭代。使用 method将以前的table元素的data-car-id属性替换为当前button元素的data-car-id属性。
$("button[id^='copy']").on('click', function () {
var id = $(this).attr('data-car-id'),
previousId = $(this).prev('button').attr('data-car-id');
html = $(this).prev("table[id^='table-']").prop('innerHTML');
$(this).next("table").html(html).find('input').each(function () {
this.name = this.name.replace(previousId, id);
});
});https://stackoverflow.com/questions/29268557
复制相似问题