Jquery无法加入attr

时间:2018-04-02 08:45:24

标签: javascript jquery

我当然提出了一个愚蠢的问题,但我找不到解决方案。

我尝试访问复选框的attr,当我点击复选框时,我想做一个json请求来更新值。 当我点击复选框时出现错误:

Uncaught TypeError: Cannot read property 'nodeType' of undefined

这是我的代码的一部分

for (var i = 0; i < json.length; i++) {
    var checked = + json[i].know == true?"checked": "";
    $("#container").append("<input type='checkbox' class='know-check' name='know' know-seq='"+i+"' value='Know' "+checked+">");
}
$('.know-check').click(function() {
    console.log($(this).attr());
}); 

我尝试了多种内容,例如

console.log($(this)[0]);

我获得了

<input type=​"checkbox" class=​"know-check" name=​"know" know-seq=​"1" value=​"Know">​

但是console.log($(this)[0].attr());给了我同样的错误

我确信有一个简单的解决方案,但我没有任何想法,所以如果有人可以帮助我:)。

由于 ps:对不起,我不是英文

2 个答案:

答案 0 :(得分:3)

jquery&#39; s attr并非设计为不带参数调用,因此传递参数名称 - know-seq

$('.know-check').click(function() {
    console.log($(this).attr("know-seq"));
}); 

答案 1 :(得分:2)

将属性名称作为参数传递给attr函数。

$('.know-check').click(function() {
    console.log($(this).attr("know-seq"));
});