没有选中属性的复选框

Qui*_*nto 5 html javascript jquery

我一直在向表中的每一行动态添加复选框 - datatables.net。但是,当我选中这些框时,html 没有显示任何已选中的属性,这不允许我只关注带有选中复选框的行。如果我使用checked 属性设置复选框,那么是的,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");
            }
         ...
Run Code Online (Sandbox Code Playgroud)

以下是我如何将元素附加到 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);
Run Code Online (Sandbox Code Playgroud)

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

<input type="checkbox" id="checkbox_3895">                  examples.php:189
Run Code Online (Sandbox Code Playgroud)


我想,我想知道为什么即使我选中了复选框,checked 属性也从未包含在内?

LcS*_*zar 5

HTML 标记属性<input checked=""实际上并不是为了在运行时显示元素的状态,而是在页面第一次呈现时定义它的默认状态。

MDN <输入> 文档说明:

选中:

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

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

document.getElementById('myInput').checked; //(true / false)
Run Code Online (Sandbox Code Playgroud)

或 CSS 伪:checked:

#myInput:checked {
}
Run Code Online (Sandbox Code Playgroud)