2010-03-24 81 views
1

我成功地通过ajax发布了一个表单,使用下面的代码;解析来自jQuery ajax表单的响应

$.post("Page.do?source=ajax", 
      $("#Form").serialize(), 
      function(data){ 


       } 

返回的数据响应可以被警告。我可以看到它是整个表单的HTML,已经提交。但是,我无法访问在该形式已经通过AJAX来一个元素,即

data.find('.Errors').html() 

$('.Errors', data).html() 

我需要的文本不知何故转换成然后可以解析的DOM通过jQuery?

+0

首先您需要将其转换为jQuery对象,但即使在那之后.find()可能无法正常工作,请参阅http://stackoverflow.com/a/8612928/1404348和http://stackoverflow.com/a/ 405700/1404348 – MTVS 2013-02-15 17:54:27

回答

2

正确,否则你将不得不应用正则表达式的结果(这是一个字符串,而不是一个DOM)。

您可以将其转换为DOM:

$(data) 

,然后将你想要的任何jQuery的。

+0

您可以举个例子布赖恩吗?我无法得到这个工作 – Andy 2010-03-24 18:21:37

+0

@Andy:@prodigitalson给出的例子应该工作:$(data).find('.Errors')。html();假设你的数据是有效的HTML。 – 2010-03-24 18:30:23

+0

嗯,从$(数据)删除元素更困难,但我已经得到它的工作,谢谢。 – Andy 2010-03-25 08:57:26

1

我是否需要以某种方式将文本转换为可以被jQuery解析的DOM?

是的,你做的事:

$(data).find('.Errors').html();

虽然通常使用数据范围的选择就像你在你的第二个例子应该工作表现。

+0

.find()可能无法正常工作请参阅http://stackoverflow.com/a/8612928/1404348和http://stackoverflow.com/a/405700/1404348 – MTVS 2013-02-15 17:55:15