在函数中使用jQuery .append()?

时间:2011-02-09 14:39:14

标签: javascript jquery json

我一直在尝试调用一个函数,在预先存在的div标签中附加html标签,如下所示:

function loadTextbox(jsonUrl,divId){
$.getJSON(jsonUrl, function(json) {
    alert('hello');
    $('#' + divId).append('<h2></h2>')
        .find('h').append(json.heading).attr(json.config.backgroundConfig)
        .find('h').attr(json.config.headingConfig).append(json.heading).parent()
        .find('p').attr(json.config.bodyConfig).append(json.body);
    })
}

这是一个复杂的例子,但是我无法在任何其他函数中使用append()函数。我可以直接从.js追加,但没有运气。我也知道json调用正在工作,因为我使用相同的调用并查询不同的函数。将append()放在函数中是否有问题?

编辑:还有一个注释,上面的提醒不起作用。但是如果向上移动一行(在$ .getJSON调用之上它可以正常工作。也许这很重要? 另外,我在同一个.js文件中直接调用它下面的函数:

loadTextbox("./json/textbox.json","text");

2 个答案:

答案 0 :(得分:0)

如果您的警报从未显示,当它在功能内部时,则表示您没有收到回复。

如果您使用的是Firefox,请使用Firebug插件查看是否在服务器端抛出异常。

答案 1 :(得分:-1)

您可能需要查看文档:

  

jQuery.getJSON(url,[data],[success(data,textStatus,jqXHR)])

这意味着:你的回调是3e参数,而不是第二个。

- 编辑

所以你想要做的是:

$.getJSON(jsonUrl, '', function(json) {
  ...