没有选中属性的复选框

时间:2014-09-29 19:58:10

标签: javascript jquery html5

我一直在动态地为表格中的每一行添加复选框 - datatables.net。但是,当我选中这些框时,html不会显示任何已检查的属性,这样我就不会只关注带有复选框的行。如果我使用checked属性设置复选框,则yes,checked元素可见。这里的代码显示了我如何尝试检查已检查的属性...

        var filtered_rows = example_data_table._('tr', {"filter":"applied"});

        $.each(filtered_rows, function(i, el){
            // If not checked, do not include
            if(!$(el[0]).is(':checked')){
                console.log(el[0]);
                return true;
            }else{
                window.alert("HIT");
            }
         ...

以下是我将该元素附加到datatables.net表的方法......

        var checkbox = $("<input type='checkbox' 
                           id='checkbox_" + o.example_id + "' />");

        ...

        tmp = [checkbox[0].outerHTML,
        ...];
        table_data.push(tmp);

        ...

        example_data_table.fnClearTable(false);
        example_data_table.fnAddData(table_data);

在控制台中,我得到的就是这个消息n次:

<input type="checkbox" id="checkbox_3895">                  examples.php:189


我想,我想知道为什么即使我选中了复选框,也不会包含checked属性?

1 个答案:

答案 0 :(得分:3)

HTML标记属性<input checked=""实际上并非设计用于在运行时显示元素的状态,而是在页面首次呈现时定义的默认状态

MDN < input > docs州:

  

选中:

当type属性的值为radio或checkbox时,此布尔属性的存在表示默认选择了控件;否则会被忽略。

您可以定位的唯一不同的检查状态是Js DOM属性checked

document.getElementById('myInput').checked; //(true / false)

或Css伪:checked

#myInput:checked {
}