.attr('已检查','已检查')并非按预期工作

时间:2014-06-16 20:47:49

标签: jquery attr checked

我有这个代码,它没有用。

    .on("click","span.name", function selectThisName(e) {
        if (e.altKey) {
            username = jQ(this).text();
            if (username != 'None') {
                jQ("span.name:contains('" + username + "')").closest('.namedesign').prev().prev().attr('checked', 'checked');
                e.preventDefault();
                updateCheckedCount();
            }
        }
    }

过去曾经有效,但现在还没有。如果我点击相同的三个或四个垃圾邮件发送者名称,它应该更快地检查发布字段旁边的所有框。

但是,我也有这个代码,它真的有用。它侧重于独特的用户识别;元素本身包括标识,与用户名不同,它是基于文本的"。这是网站的代码:http://puu.sh/9wxbw/03cb74487e.png

    .on("click","span.ident", function selectThisID(e) {
        if (e.altKey) {
            identification= "id_" + jQ(this).text();
                jQ("span." + identification).closest('.namedesign').prev().prev().attr('checked', 'checked');
                e.preventDefault();
                updateCheckedCount();
        }
    })

在这种情况下,我想点击名称" heartbreaker"检查他们所有的帐户帖子,但它不起作用。但是,如果我点击该ID,它就会起作用。

为什么我需要这个? 好吧,有时我必须选择名称而不是标识。 ID是基于IP的(并且它们总是在变化,否则人们无法发送垃圾邮件),而名称不是,很多用户帐户都被劫持。

1 个答案:

答案 0 :(得分:4)

而不是.attr('checked', 'cheked')使用.prop('checked', true)

$().prop() documentation.

示例:JS Bin

编辑:

您可以在不使用jQuery的情况下设置checked属性:

$('input:checkbox').each(function(){
    //Get your input of type checkbox and set his property `checked` to boolean value:
    //Note: this is <input type='checkbox'>
    var isChecked = this.checked;
    this.checked = !isChecked;
    //Or using jQuery variable:
    $(this)[0].checked = true;
});