我有一组表行,每行都有仅使用name []属性定义的输入元素,
<tr id="1">
<td><input name="billdate[]" required="required" class="form-control" placeholder="DD/MM/YYYY"></td>
<td><input class="form-control" name="amt[]" required="required" value="0" type="text"></td>
<td><input name="gst[]" class="form-control" value="0" required="required" type="text"></td>
<td><input name="netamt[]" class="form-control" required="required" value="0" type="text"></td>
<td><input name="glcode[]" class="form-control" required="required" value="" type="text"></td>
</tr>
我已经添加了JavaScript代码来克隆表行,代码编写如下
var row = document.getElementById("1"); // find row to copy
var table = document.getElementById("asd"); // find table to append to
var clone = row.cloneNode(true); // copy children too
clone.id = document.getElementById("setid").value; // change id or other attributes/contents
table.appendChild(clone);
克隆工作正常,但问题是我想为每个输入元素分配唯一的ID。有没有简单的方法来做到这一点?我尝试了几种方法来添加,但没有成功。
答案 0 :(得分:0)
function guid() {
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
s4() + '-' + s4() + s4() + s4();
}
clone.id = guid()
它不是真正的指导,但它应该可以正常工作。
答案 1 :(得分:0)
不确定这是否是您要找的。 但循环遍历子节点并获取输入元素然后分配ID似乎可以解决问题。
var row = document.getElementById("1"); // find row to copy
var table = document.getElementById("asd"); // find table to append to
var clone = row.cloneNode(true); // copy children too
clone.id = 'blue';//document.getElementById("setid").value;'' // change id or other attributes/contents
var children = clone.children
for( var t = 0 ; t < children.length; t++ ){
children[t].children[0].id = 'id-'+t;
}
//Debugging
console.dir( clone );
table.appendChild(clone);