2012-04-15 103 views
1

所以我有一个表单通过ajax发送到python脚本。 python脚本正在输出一个包含内容类型doctype的整个HTML页面。通过ajax解析jQuery html(文本)

现在我需要从python脚本(div元素)中将响应文本的一部分插入当前页面上的div中。

如何解析响应文本并去除所有不必要的文件,如文档类型和头文件?

谢谢。

+1

是否有可能改变python脚本,使它只产生你想要的位?这可能比在浏览器中更有效率。 – jimw 2012-04-15 01:53:43

+0

是的,我明白你在说什么。但不幸的是,因为python文件也需要直接查看。 – user14412 2012-04-15 01:57:21

+0

你可以让python脚本接受一个参数吗,所以不是GET'/foo.py'就是GET'/foo.py?div=id-of-div',然后在foo.py中有一些逻辑处理它? – jimw 2012-04-15 02:01:34

回答

0

在你的成功的功能,你必须筛选结果是这样的:

success: function(r){ 
    var divContent = $(r).filter('#myDiv').html(); 
} 

我创建了一个工作捣鼓你here

这就是你的问题的解决方案,但jimw是正确的,他的评论关于改变脚本输出内容,这将是正确的解决方案。

+0

明白了,谢谢! – user14412 2012-04-15 04:22:21

1

在你的Ajax功能,你可能有其中的数据量而输出成功的功能或类似的东西,如果返回的数据是有效的HTML,只是解析带滤波器的输出,例如:

$.ajax({ 
    url: "http://www.mysite.fun/html.py" 
//using the new .done() function, works the same with .success 
}).done(function (data) { 
    var element = $(data).filter(function() { 
         if (this.id=='IdOfMyDiv') return this; 
        }); 
}); 

FIDDLE

+0

太好了,我们一直在努力研究完全相同的解决方案;) – Marc 2012-04-15 02:19:18

+0

非常感谢!虽然我到最后改变了python,但这肯定会对未来的项目有所帮助 – user14412 2012-04-15 04:23:19