尝试返回值时javascript函数错误

时间:2012-07-16 14:30:35

标签: javascript jquery function

我的目标:我正在编写一个小工具,用于填充包含内容的div。我甚至不能执行信息,因为得到错误:        未捕获的语法错误:意外的令牌返回

我写了一个执行此功能的对象,如下所示:

function TreeView(){
    this.rebuild = contructRoot();
}

function constructRoot(){
    var resultant = ajax_Request();
    var content = $(resultant);

    var root = $("<div>");
    var root_nodes = ajax_Request("/startTreeAJAX");
    root_nodes.split("|");
    root.html(
        $("<div>").html(
            $("<ul>").append($('<li>').html(root_nodes[0])).append($("<li>").html(root_nodes[1]))
        )
    );
    root.find("li").click(function(){
        clickExpand(this);
    });

    return root.html();
}

我试图基本上返回元素内容。

3 个答案:

答案 0 :(得分:6)

)的结束.click()丢失了,不要忘记在}之后使用return关闭您的功能定义。当您看到类似意外令牌的语法错误时,请立即开始查看之前发现问题的内容......

  root.find("li").click(function(){ 
     clickExpand(this);
  }); // <----

  return root.html();
}

答案 1 :(得分:2)

检查花括号和括号。你错过了其中一些。

root.find("li").click(function () {
    clickExpand(this);
});  // <-- you're missing the `)` here
    return root.html();
} // <-- You're missing the `}` here

更新:正如其他人所说,此代码还存在其他问题。

root_nodes.split("|");

这没有任何作用。您需要将root_nodes设置为该值。

root_nodes = root_nodes.split("|");
var c = $('<li>').html(root_nodes[0]) + $("<li>").html(root_nodes[1]);

这不符合你的想法。 +将连接字符串,从而返回:

"[object Object][object Object]"

.append可以接受jQuery对象(或数组),所以我建议这样做:

var c = [$('<li>').html(root_nodes[0]), $("<li>").html(root_nodes[1])];
root.html($("<div>").html($("<ul>").append(c)));

答案 2 :(得分:2)

Javascript的split()方法返回一个数组。在上面的代码中,您需要接收并存储该数组。

root_nodes = root_nodes.split("|")