当前位置:  开发笔记 > 编程语言 > 正文

jquery ajax解析响应文本

如何解决《jqueryajax解析响应文本》经验,为你挑选了3个好方法。

好吧,这真的让我感到很沮丧,因为我之前已经完成了这一百次,而这次它没有用.所以我知道我做错了什么,我只是想不出来.

我正在使用jQuery .get例程从另一个文件加载html.我不想使用.load(),因为它总是替换我正在加载内容的元素的子元素.

这是我的.get请求:

$(document).ready(function() {
    $.get('info.html', {}, function(html) {
        // debug code
        console.log($(html).find('ul').html());
        // end debug code
    });
});

文件'info.html'是一个带有正确doctype的标准xhtml文件,正文中唯一的东西是我需要访问的一系列ul.出于某种原因,find函数给我一个空值.

在firebug中,GET请求显示正确的RESPONSE文本以及何时运行

console.log(html);

而不是当前的console.log行,我将整个info.html作为输出,就像我期望的那样.

有任何想法吗?



1> Sampson..:

您无法获取整个XHTML文档.您只能处理html文档中存在的标记.令人沮丧.从info.html中删除不在您的标记内的所有内容并再次尝试.

此问题还有其他可能的解决方法 - 请在此响应的基础上查看下面的"Stackoverflow相关项".

来自Doc:(http://docs.jquery.com/Core/jQuery#htmlownerDocument)

"HTML字符串不能包含div中无效的元素,例如html,head,body或title元素. "

Stackoverflow相关项目:

简单的jQuery ajax示例没有在返回的HTML中查找元素

使用jQuery解析远程内容的最佳实践是什么?



2> Isaac..:

我知道这是一个很老的帖子,但是我已经有了几个小时的确定同样令人沮丧的问题,并找到了解决方案.对我来说,实际工作的是将html内容包装为表单标签.

所以有以下html源:


 
  
   
Some Stuff

有了这个jquery片段应该工作:

var callback = function (data) {
   alert($("#content", $(data)).html());
};
$.get(url, null, callback, null);

希望这可以帮助...



3> Epeli..:

我发现这是非常干净的解决方案:

var elementInResponse = $("
").html(responseText).find(selector);

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有