gpt4 book ai didi

javascript - $(this).attr ("id").slice(-1) 工作但 $(this).id.slice(-1) 不工作

转载 作者:行者123 更新时间:2023-11-30 07:55:21 25 4
gpt4 key购买 nike

我已将一个按钮作为变量附加到 Blade ,该按钮的属性如下

 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="xx2"的 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);

请向我解释这里的冲突,在此先感谢..

最佳答案

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);

更新:因为您将 DOM 对象作为参数传递并且您可以直接从它获取 id 属性,所以不需要使用 jQuery 包装它。

// el === $(el)[0]
var currentId = el.id.slice(-1);

关于javascript - $(this).attr ("id").slice(-1) 工作但 $(this).id.slice(-1) 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41431256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com