通过函数获取元素的id

jac*_*013 10 javascript jquery

我有一个在复选框字段中的onclick事件中调用的函数.

<input type='checkbox' checked='' onclick='return changeEnable();' id='someid'>
Run Code Online (Sandbox Code Playgroud)

和功能

function changeEnable()
{
    var val = $(this).attr('id');
    alert(val);
}
Run Code Online (Sandbox Code Playgroud)

我有,但它返回undefined.我的语法错了还是错过了什么?

这些复选框是动态创建的,具有不同的ID,这就是为什么我想获取某些任务的id.

Ror*_*san 19

请注意,this在你的changeEnable功能中将是window.您需要将对元素的引用作为参数传递给函数:

<input type='checkbox' checked='' onclick='return changeEnable(this);' id='someid'>
Run Code Online (Sandbox Code Playgroud)
function changeEnable(el) {
    var val = el.id
    alert(val);
}
Run Code Online (Sandbox Code Playgroud)

或者,作为改进,使用Javascript附加您的事件以更好地分离关注点:

<input type="checkbox" id="someid">
Run Code Online (Sandbox Code Playgroud)
$(function() {
    $('#someid').change(function() {
        var val = this.id
        alert(val);
    }
});
Run Code Online (Sandbox Code Playgroud)

请注意,上面使用change复选框的事件,这更易于访问.