我在刀片上添加了一个按钮作为变量,该按钮的属性如下
var $btnDelete = $('<input />',{
'id': 'btn_delete'+ x,
'type':'button',
'name':'btn_delete'+ x,
'class':'btn btn-danger editor_remove editor_remove_leave_types ',
'onclick':'RemoveUpdateLeaveTypes(this)',
'data-id':x });
注意:x只是一个变量(0,1,2等)
这是按钮附加到id =&#34; xx2&#34;的div的方式。 : -
$('#xx2').append($btnDelete);
这里是上述按钮的JavaScript功能:
function RemoveUpdateLeaveTypes(el)
{
var currentId=$(el).id.slice(-1);
console.log('currentId '+currentId);
}
单击此按钮后,控制台上将显示此错误消息
Uncaught TypeError: Cannot read property 'slice' of undefined
at RemoveUpdateLeaveTypes (leavePolicyDetails.js:944)
at HTMLInputElement.onclick (leave-policies:1)
但是,如果我使用此命令,我将没有错误
var currentId=$(el).attr("id").slice(-1);
请在此解释我的冲突,提前谢谢..
答案 0 :(得分:5)
jQuery对象没有id
属性($(el)
是jQuery对象)。要获取DOM元素属性,请使用jQuery prop()
(或attr()
)方法或通过索引获取DOM对象并获取属性。
var currentId = $(el).prop('id').slice(-1);
// or
var currentId = $(el)[0].id.slice(-1);
// or you can get DOM object using get() method
var currentId = $(el).get(0).id.slice(-1);
UPDATE:由于您将DOM对象作为参数传递,并且您可以直接从它获取id属性,因此无需使用jQuery包装它。
// el === $(el)[0]
var currentId = el.id.slice(-1);
答案 1 :(得分:1)
你正在将hom元素本身作为this
传递给html,所以只得到没有jQuery的那个元素的id属性,这对于这种情况没有任何帮助
var currentId= el.id.slice(-1);
console.log('currentId '+currentId);
答案 2 :(得分:0)
var input = ["apple", "windows", "ubuntu", "cola", "system"];
var answer = function (ele){
if (ele.charAt(0) == "a" || ele.slice(-1)== "a")
return ele
}
console.log(input.filter(answer))