代码之家  ›  专栏  ›  技术社区  ›  localshred

用ajax返回数据更新dom元素在jquery中失败

  •  0
  • localshred  · 技术社区  · 15 年前

    我正在jquery中执行一个简单的Ajax POST请求,将其发送到我站点上的另一个页面,以获取XML文档响应。我要把反应放到 pre 启用语法突出显示的元素。反应很好(我可以 alert 但不会添加到 之前 当我尝试在 handlResponse 与jquery一起使用。

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

    为了清楚起见,上面的javascript代码在jquery的document ready函数中。任何帮助都将不胜感激。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Anthony    15 年前

    三件事:

    1. 是否正确传递了响应?通过在函数内部发出响应警报进行检查。

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

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

      var preText = (response != "") ? response : "The problem is with the reponse";
      
        2
  •  1
  •   Josh Stodola    15 年前

    尝试使用 html 而不是 text

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

    编辑: 如果你认为逃跑是个问题,那么下面的内容应该可以很好地避开它来显示…

    response = response.replace(/</g, "&lt;");
    $("#output").html(response);
    
        3
  •  0
  •   localshred    15 年前

    显然这是个坏问题。我正在使用javascript库 SyntaxHighlighter 并预装了突出显示在 pre 我试图使用的标签。我的解决方案是删除标记,并在Ajax响应出现时动态地创建它。除了我正在尝试确定如何将突出显示加载到动态附加的DOM元素上之外,这一点很有效。

    感谢您的回复。