事实上HTML代码是不会发生变化的,但是控件对象的属性会发生变化以反映这个操作的结果.也就是说,该对象的checked属性值会由false变成true.但元素标签中并不会插入checked="checked"这样的字符串.
<section id="main">
<input id="toggleAll" type="checkbox" >
<lable for="toggleAll">标记全部任务</lable>
<ul id="todoList"></ul>
</section>
如果勾中这个复选框 再console.log $('#toggleAll').attr('checked') 应该得到true
但得到的是undefined
如果用JQ来取得该属性值的话,那么结果是checked或undefined,但如果用JS直接访问这个属性,会得到true或false.
这是因为JQ并不是直接返回该属性的值.
比如:
alert(document.getElementById('toggleAll').checked);
在选中的状态下,会得到true,否则会得到false
事实上,标准的checked属性值应该是true与false,设置为checked是不太规范的,因为checkbox返回的checked属性的值也是true或false,而不是checked,即使你设置checked=“checked”,checked返回的是“true”。
选中后,checkbox的checked属性值会由false变为true。