未捕获的TypeError:undefined不是函数

时间:2014-06-15 03:26:12

标签: javascript undefined

我正在制作一个插件,如果篇幅太长,我可以缩短论坛索引中每个条目的标题。然而,这比我预期的要困难得多。

一切都很顺利,除非我到达你实际需要将项目打印到DOM上的部分。

我收到此错误:

Uncaught TypeError: undefined is not a function 

这是我的代码,其中包含一些笔记,我向您展示它是如何工作的。

var minimize = function() {
    $('.segment').each(function(){
        var title_box = $(this).children('.title');
        // Selects the container of the title.
        var title = $(this).children('.title').text().trim();
        // Takes the child title of the each .segment class and selects its innards.
        console.log(title);
        var res = title.split("");
        // Splits the text into an array.
        console.log(res);
        var fragment = [];
        // initializing the empty array
        for (x = 0; x < 4; x++) {
            fragment.push(res[x]);
            console.log(fragment);
            // Loops through to make sure it's not more than 5 characters long
        };
        var final = fragment.join("");
        // Joins the broken up string together.
        title_box.empty();
        final.appendTo(title_box);
    });
};

你觉得我做错了什么?如果还有其他方法可以让我的代码更有效率,那么请不要犹豫告诉我。

1 个答案:

答案 0 :(得分:3)

在此处,您将fragment定义为数组:

var fragment = [];

然后填充它并执行此操作:

var final = fragment.join("");

阅读array.join上的文档,了解该功能的作用。简而言之,它将您的阵列加入string

现在当你这样做时:

final.appendTo(title_box);

您获得了TypeError,因为字符串没有appendTo方法

你可能想要的是一个调用appendTo的jquery对象。

也许你的意思是:

title_box.text(final);