【问题标题】:Why is this jQuery script isn't working in Chrome and Opera while it's perfectly fine in Firefox, IE and Safari?为什么这个 jQuery 脚本不能在 Chrome 和 Opera 中运行,而在 Firefox、IE 和 Safari 中却完美无缺?
【发布时间】:2015-04-09 11:02:31
【问题描述】:

我正在使用以下脚本通过标题中的复选框选择网格视图中的所有复选框

$("[id*=chkboxSelectAll]").click(function ()
    {
        var chkboxSelectAll = $(this);
        var grid = "[id*=grdStudents]";
        $("input[type=checkbox]", grid).each(function ()
        {
            if (chkboxSelectAll.is(":checked"))
            {
                $(this).prop("checked", "checked");
            } else
            {
                $(this).removeProp("checked");
            }
        });
    });

【问题讨论】:

    标签: jquery google-chrome opera


    【解决方案1】:

    Jquery docs 说的很清楚:

    注意:请勿使用此方法移除原生属性,例如 选中、禁用或选中。这将删除该属性 完全,一旦删除,就不能再次添加到元素中。 使用 .prop() 将这些属性设置为 false。

    请注意,如果您打算不再使用该属性,请尽量避免使用 removeProp()。

    【讨论】:

      【解决方案2】:

      上一个脚本的问题是下面这行:

      $(this).removeProp("checked");
      

      我将其替换为以下行:

      $(this).prop("checked", "");
      

      然后它工作得很好。 知道为什么这会在某些浏览器中造成问题,而在其他浏览器中却没有吗?

      【讨论】:

      • 我建议将此添加到您的问题中,因为这是您的主要问题:)
      猜你喜欢
      • 1970-01-01
      • 2012-01-10
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多