无法读取 jquery 中未定义的属性“replace”
2017-03-22
6989
我正在使用
delete
、
cancel
和
update
按钮进行内联编辑。当我尝试取消编辑时,它显示错误为
无法读取未定义的属性“replace”
。
我的代码有什么错误?
function editCancel(id) {
var cancelId = $(this).attr('id');
$("#" + cancelId).hide();
var number = cancelId.replace("editCancel", "");
$("#update" + number).hide();
$("#edit" + number).show();
$("#delete" + number).show();
}
2个回答
问题区域是函数中的
this
,它引用的是
window
对象,而不是调用该函数的按钮。
修改您的函数
function editCancel(elem) {
var cancelId = $(elem).attr('id');
//rest of code
}
在内联点击处理程序中传递当前元素,如
<button class="btn editCancel btn-danger" onclick="editCancel(this)"></button>
Satpal
2017-03-22
使用事件委托将事件绑定到动态添加的元素。
$(document).on('click', ".editCancelAction", function (){
//Your code.
var cancelId = $(this).attr('id');
$("#" + cancelId).hide();
var number = cancelId.replace("editCancel", "");
$("#update" + number).hide();
$("#edit" + number).show();
$("#delete" + number).show();
});
更新的小提琴: https://jsfiddle.net/zs0hqv3e/4/
Abdul Rafay
2017-03-22