1

我的目标:我正在为一项工作编写一个小部件,它将用内容填充一个 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();
}

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

4

3 回答 3

6

缺少的关闭).click()并且不要忘记}return. 当您看到诸如意外标记之类的语法错误时,请立即开始查看它之前的内容以找到您的问题...

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

  return root.html();
}
于 2012-07-16T14:33:04.907 回答
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)));
于 2012-07-16T14:32:35.827 回答
2

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

root_nodes = root_nodes.split("|")
于 2012-07-16T14:32:49.087 回答