我正在使用以下代码动态创建并附加到表<tr>
和<td>
中:
$("#table1").append(
'<tr>'+
'<td style="cursor:pointer" onclick="pass.data.carregar(this.parentNode.rowIndex-2);">'+$("#DRVR_NAME").val()+'</td>'+
'</tr>');
到目前为止还可以:我可以将Td数据加载到我想要的其他字段中,并且创建它没有问题。
但除了创建它之外,我必须允许用户动态删除<td>
,但正如您所看到的,没有要查找的ID。允许用户删除<td>
?
我正在尝试以下代码:
$("#table1>tbody>td>tr."+teste+"").remove();
但没有成功!测试变量是我自动为寄存器定义的数字。
有任何帮助吗?
答案 0 :(得分:2)
如果test
是您要删除的行的从0开始的索引...
$("#table1>tbody>tr:eq("+test+")").remove();
答案 1 :(得分:0)
动态创建每个单元格时设置唯一的id属性。
<tr id="uniqueID"><td>Cell Content</td></tr>
然后使用简单的jquery按id删除行。
$('#uniqueID').remove();
答案 2 :(得分:0)
您可以在每个驱动程序名称旁边添加一个小x,通过更改您的代码来删除该td:
$("#table1").append('<tr>'+'<td style="cursor:pointer" onclick="pass.data.carregar(this.parentNode.rowIndex-2);">'+$("#DRVR_NAME").val()+'<span onclick="$(this.parentNode).remove()">x</span></td>'+'</tr>');
或者您可以向绑定到每个<td>
的点击处理程序添加另一个函数,该处理程序将在预定义的<div>
中显示一条消息,询问用户是否要删除该元素:
$("#table1").append('<tr>'+'<td style="cursor:pointer" onclick="pass.data.carregar(this.parentNode.rowIndex-2);askDelete(this);">'+$("#DRVR_NAME").val()+'</td>'+'</tr>');
然后在HTML中的某处定义一个消息区域(id ='messageArea'),并在代码中定义以下函数:
askDelete(el){
var MA=$('#messageArea');
MA.empty();
MA.html('Do you want to delete ' + el.innerHTML + '?<br>').append('<span id="confirmDelete">delete</span> <span id="cancelDelete">cancel</span>')
MA.find('#confirmDelete').click(function(){$(el).remove();});
MA.find('#cancelDelete').click(function(){MA.empty();})
}
然后根据需要设置删除和取消按钮的样式。
答案 3 :(得分:0)
您的删除代码假设TD上有一个类。你必须使用:eq()通过引用隐藏字段中的值来定位它。如果隐藏字段中的值是一个数字(用户选择的td的索引=您的计数器),您可以尝试这样的事情:
var hiddenFieldValue = $('input.hiddenFieldClassName').val();
$("#table1>tbody>tr>td:eq("+hiddenFieldValue+")").remove();