需要帮助来修复这个jQuery代码片段

时间:2017-05-15 14:16:04

标签: jquery

我在这个网站的某个地方找到了这个非常有用的代码:

$('input[type="checkbox"]').on('change', function() {
    $('input[name="' + this.name + '"]').not(this).prop('checked', false);
});

但是,我更喜欢按类而不是按名字来识别我的复选框,所以我尝试将代码段更改为:

$('input[type="checkbox"]').on('change', function() {
    $('input[class="' + this.class + '"]').not(this).prop('checked', false);
});

但由于某种原因,这不起作用。我很确定我犯了一个非常基本的错误,但是如果你能帮我解决这个问题,那就太棒了。

2 个答案:

答案 0 :(得分:0)

要从输入中获取类,请使用jQuery attr并指向变量:

jQuery Attribute Selector

作为评论中的stated by e_i_pi,使用var class会更安全一些,因为它将变量类的范围限制为它所定义的函数。

var class = $(this).attr('class');

所有在一起:

$('input[type="checkbox"]').on('change', function() {
    var class = $(this).attr('class');
    $('input.' + class).not(this).prop('checked', false);
});

答案 1 :(得分:0)

element.class不是有效的DOM属性:

console.log(document.getElementById('test').class);
<div id="test" class="foo"></div>

您必须改为使用element.className

console.log(document.getElementById('test').className);
<div id="test" class="foo"></div>