如何解决“TypeError:$(...)。长度不是函数”?

时间:2017-03-13 14:30:05

标签: javascript jquery

我的代码是这样的:

$(document).ready(function () {
    size_li = $("#myList li").length();
    x=3;
    $('#myList li:lt('+x+')').show();
    $('#loadMore').click(function () {
        x= (x+5 <= size_li) ? x+5 : size_li;
        $('#myList li:lt('+x+')').show();
    });
    $('#showLess').click(function () {
        x=(x-5<0) ? 3 : x-5;
        $('#myList li').not(':lt('+x+')').hide();
    });
});

或在此处查看演示和完整代码:http://jsfiddle.net/oscar11/6FzSb/4177/

我使用jquery 3.0.1

执行时,存在错误:

TypeError:$(...)。length不是函数

我该如何解决?

4 个答案:

答案 0 :(得分:24)

而不是这个

$("#myList li").length();

使用此:

$("#myList li").length;

$("#myList li")返回一个像对象一样的数组。所有类似对象的数组都有一个名为length的属性,当读取该属性时,返回数组中包含的项目数量,如object。据说没有任何称为长度的函数。因此length()毫无意义。

答案 1 :(得分:2)

length是属性,而不是函数,因此请删除()

$("#myList li").length;

答案 2 :(得分:2)

length不是一个函数,只有Yourthings.length没有()。 更多文档length documentation

答案 3 :(得分:0)

我已经更新了你的小提琴,它说它不是一个功能,因为它确实不是。 javascript数组中的长度是属性,所以你应该像

一样调用它
array.length

因为dom选择器返回dom元素数组,所以你也应该使用不带括号的长度