我一直在动态地为表格中的每一行添加复选框 - 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属性?
答案 0 :(得分:3)
HTML标记属性<input checked=""
实际上并非设计用于在运行时显示元素的状态,而是在页面首次呈现时定义的默认状态
选中:
当type属性的值为radio或checkbox时,此布尔属性的存在表示默认选择了控件;否则会被忽略。
您可以定位的唯一不同的检查状态是Js DOM属性checked
:
document.getElementById('myInput').checked; //(true / false)
或Css伪:checked
:
#myInput:checked {
}