在jQuery中使用AJAX返回数据更新DOM元素失败

时间:2009-10-08 19:55:49

标签: html xml jquery

我正在jQuery中对我网站上的另一个页面执行简单的AJAX post请求以获取XML文档响应。我将响应放入pre元素,并启用了语法高亮显示。响应很顺利(我可以alert它),但当我尝试使用jQuery在pre函数中分配它时,它没有被添加到handlResponse元素。

<head>
<script>
   ...
   function handleResponse(response, status)
   {
      $("#output").text(response);
   }
   $.post(url, data, handleResponse, "text");
   ...
</script>
</head>

...

<pre id="output">
</pre>

为了清楚起见,上面的javascript代码是在jQuery的文档就绪函数中。任何帮助肯定会受到赞赏。

3 个答案:

答案 0 :(得分:1)

尝试使用html代替text ...

$("#output").html(response);

编辑:如果您认为转义是问题,以下内容应该足以显示...

response = response.replace(/</g, "&lt;");
$("#output").html(response);

答案 1 :(得分:1)

三件事:

  1. 响应是否正确传递?通过在功能本身内做出响应警报来检查。

  2. 是否正确调用了该函数?通过让它执行与响应变量(alert("Yo!"))无关的警报进行检查。

  3. 是否正确插入了文字?我可以告诉它应该工作,但为了完全调试,添加这样的三元组:

    var preText = (response != "") ? response : "The problem is with the reponse";
    

答案 2 :(得分:0)

显然这是一个糟糕的问题。我正在使用javascript lib SyntaxHighlighter,并在我试图使用的pre标记上预加载了语法高亮显示。我的解决方案是删除标记并在ajax响应进入时动态创建它。除了我正在尝试确定如何在动态附加的dom元素上加载突出显示这一事实之外,这个效果很好。

感谢您的回复。