我遵循了一些创建的解决方案,其中大部分都在工作,但我有一个问题,即重复SELECTED id记录,而不仅仅是HTML的结构。
foreach ($pdo->query($sql) as $row) {
echo '<tr id="myrow">';
echo '<td>'. $row['id'] . '</td>';
echo '<td>'. $row['finishing'] . '</td>';
echo '<td>'. $row['price'] . '</td>';
echo '<td width=250>';
echo '<a class="btn btn-warning" onclick=duplicate()>Duplicate</a>';
}
当我点击DUPLICATE按钮时,我想根据所选的id复制整行。
我的重复实施:
var i = 1;
$("table tr:first").clone().find("tr").each(function() {
$(this).attr({
'id': function(_, id) { return id + i },
'value': ''
});
}).end().appendTo("table");
i++;
});
更新:另一种重复尝试:
document.getElementById('duplicateid').onclick = addMoreFields;
var newRow = document.getElementById('myrow').cloneNode(true),
myTable = document.getElementById('myTable');
function addMoreFields() {
myTable.appendChild(newRow.cloneNode(true));
}
答案 0 :(得分:1)
您需要使用引号添加函数duplicate()
。 onclick="duplicate()"
echo '<a class="btn btn-warning" onclick="duplicate()">Duplicate</a>';
修改强>
每一行都有相同的ID(myrow),这是不正确的,所以我要把它改成一个类。为每一行提供一个新属性,例如data-id。
因为我确定ID是一个整数我没有给它属性ID,因为ID不能以整数开头。
echo '<tr class="myrow" data-id="'.$row['id'].'">';
然后将ID发送到复制功能。
echo '<a class="btn btn-warning" onclick="duplicate(\''.$row['id'].'\')">Duplicate</a>';
然后复制该行并将其附加到表格中。
function duplicate(id){
$("#themeTable tr[data-id='"+id+"']").clone().appendTo($("#themeTable"));
}
我完全不明白你想要什么。是这个吗?单击时将行附加到表的末尾?