nop*_*ole 5 html javascript checkbox jquery
在下面的代码中使用jQuery:
$("input").change(function(evt) {
console.log("change event handler invoked", evt);
console.log($("input").is(':checked'));
console.log($("input").attr("checked"));
console.log($("input").prop("checked"));
});
$("input").trigger("click");
$("input").trigger("click");Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id="the-input" type="checkbox">Run Code Online (Sandbox Code Playgroud)
在is(':checked')与prop("checked")都能表现出一个真实的,但'ATTR("选中")将显示不确定的.我以为他们是一样的?(即使我们手动点击复选框,也会产生相同的效果).
另外,如果我checked在HTML中设置默认情况下选中复选框(http://jsfiddle.net/UcGyM/1/),现在attr("checked")将打印出checked两个触发器,因此它无法判断是否是否检查 - 为什么?(这两个节目也很奇怪checked,但$("input").attr("checked", true);也$("input").attr("checked", false);可以打开或关闭.)
一个相关的问题是,如果我们想要坚持使用attr("checked"),这是否意味着在HTML中,它必须具有以下checked属性:<input type="checkbox" checked>如果是,它如何指定属性但是默认为关闭?(因为checked="false"或者checked=""或者checked="0"不会让选择它的默认值.
不,他们不一样. .attr是DOM属性.这将是checked如果该元素是
<input type=checkbox checked>
Run Code Online (Sandbox Code Playgroud)
这是物业单击时得到改变.
至于你的相关问题,checked是一个布尔属性,所以没有办法指定在具有checked属性的情况下不检查元素.
我不知道你为什么会想坚持使用attr时jQuery的API本身说,这是不正确的的jQuery 1.6