14

我需要选择列出的州(例如印度)下的所有城市。我全选:

<input type="checkbox" class="selectall" /> Select All

然后出现以下错误:

this.elem.prop 不是函数

这是我的代码:

jQuery('.selectall').click(function() {
    stop = false;
    jQuery(this).closest('div').nextAll().each( function() {
        elem = jQuery(this).find('input');
        console.log(elem);
        if (stop || elem.hasClass('selectall')) {
            stop = true;
            return;
        }
        else
            elem.prop("checked", true);
    });
});
4

2 回答 2

31

prop()方法仅在 jQuery 1.6 中添加。在以前的版本中,您应该使用attr().

elem.attr("checked", true);

请注意其他答案,elem它已经是在此行上定义的 jQuery 对象:elem = jQuery(this).find('input');因此,prop()如果 jQuery 版本支持该方法,则该方法将可用。


更新

要切换复选框,请使用:

if (stop || elem.hasClass('selectall')) {
    stop = true;
    return;
}
else
    elem.prop("checked", !elem.is(':checked')); // toggle the checkbox
于 2013-01-09T09:57:54.677 回答
0

您的 JQuery 版本必须低于 v1.6。请参阅以下 JQuery 文档链接,该链接指出“prop”函数仅从 v1.6 开始添加。

http://api.jquery.com/prop/

所以你的问题的解决方案是使用“attr”函数而不是“prop”。

显然, attr 检索属性(这是 HTML 元素的初始 String 值),而 prop 检索属性(可以是 DOM 操作值,可以是任何类型,例如字符串、布尔值等)。阅读以下 Stackoverflow 链接,了解有关两者区别的更详细说明。

.prop() 与 .attr()

于 2016-06-21T14:22:01.117 回答