jquery - jQuery v1.9.1 的 .attr() 复选框问题

标签 jquery version

HTML:

<input type="checkbox" />
<span id="test">Click here</span>

JS:

$("#test").click(function () {
    if ($(":checkbox").attr("checked") == undefined) {
        $(":checkbox").attr("checked", "checked")
    } else {
        $(":checkbox").removeAttr("checked")
    }
});

fiddle :Link - v1.8.3

这工作得很好,但是,如果我将 jquery 版本更改为 1.9.1,则不再选中该复选框。这是什么问题?

fiddle :Link - v.1.9.1

虽然 inspect 元素 显示复选框正在切换属性,但如果我在控制台,我得到 false 作为输出

最佳答案

checked 是一个属性,当 bool 属性如 disabledchecked 时,您应该使用 prop 方法设置为一个元素,该值被映射到该元素的相关 DOM 属性(浏览器执行此操作),并且 attrremoveAttr 方法执行此操作不更改元素的属性,从 jQuery 1.6 开始,要修改属性,应使用 prop 方法而不是 attr

$("#test").click(function () {
    $('input[type=checkbox]').prop('checked', function(i, state){
        return !state;
    });
});

http://jsfiddle.net/3rQvj/

关于jquery - jQuery v1.9.1 的 .attr() 复选框问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15860756/

相关文章:

jquery - 如何打印表格的CSS

javascript - 如何获取点击的超链接的 ID 并在另一个页面中发布?

mysql - 在 MySQL 数据库中检查 WordPress 版本

grails - 在运行时获取Grails插件版本

version - 语义版本控制是否适用于源或二进制兼容性?

ios - 通过 TestFlight 安装旧版本

javascript - 通过 javascript 或 jquery 删除特定 div 索引后的任何子元素

javascript - 谷歌地图 JavaScript API

javascript - 可扩展的多选下拉列表

windows - 确定脱机磁盘镜像的 Windows 版本、版本和服务包