我有以下html代码,它代表表的一部分
<tr>
<td>
<span class='tip'><a href='#' class='Delete' data-name='product1' title='Delete'><img src='images/icon/icon_delete.png'></a></span>"
</td>
</tr>
<tr>
<td>
<span class='tip'><a href='#' class='Delete' data-name='product2' title='Delete'><img src='images/icon/icon_delete.png'></a></span>"
</td>
</tr>
和一些JS
$(document).on('click', '.Delete', function () {
var name = $(this).attr("data-name");
$.confirm({
'title': 'DELETE ROW',
'message': "<strong>DO YOU WANT TO DELETE </strong><br /><font color=red>' " + name + " ' </font> ",
'buttons': {
'Yes': {
'class': 'special',
'action': function () {
// this is the problem
// i am trying to get the row
var row = $(this).closest("tr").get(0);
oTable.fnDeleteRow(row);
}
},
'No': { 'class': '' }
}
});
});
我正在尝试获取行ID,以便我可以删除它。
如何将调用者传递给click
事件
编辑:我想删除一行,也许有其他方式
答案 0 :(得分:2)
你的问题是在$ .confirm插件的action
回调函数中,this
的值可能是其他东西(即不是DOM节点)。在调用插件之前保存对$(this)
的引用,并在action
回调中使用该引用。类似的东西:
$(document).on('click', '.Delete', function () {
var node = $(this);
var name = node.attr("data-name");
$.confirm({
'title': 'DELETE ROW',
'message': "<strong>DO YOU WANT TO DELETE </strong><br /><font color=red>' " + name + " ' </font> ",
'buttons': {
'Yes': {
'class': 'special',
'action': function () {
var row = node.closest("tr").get(0);
oTable.fnDeleteRow(row);
}
},
'No': { 'class': '' }
}
});
});
这是一个猜测,因为我没有使用你的确认插件,但这是一个常见的JS陷阱。
答案 1 :(得分:0)
$(this).parent().parent().parent().remove();
应该摆脱它。