我正在使用ajax帖子并以html的形式接收数据。我需要分割数据并在整个页面上放置数据。我构建的响应数据类似于<p id='greeting'> Hello there and Welcome </p> <p id='something'>First timer visiting our site eh'</p>
它有点复杂和动态,但如果能回答这个问题,我可以弄明白。感谢
$.ajax({
type:'POST',
url: 'confirm.php',
data: "really=yes&sure=yes",
success:function(data){
//Need to split data here
}
});
答案 0 :(得分:6)
更新:刚刚意识到你应该这样做:
success:function(data) {
data = $('<div/>').append(data);
$('#greeting',data).appendTo('#one')
$('#something',data).appendTo('#two')
}
由于您不能正确使用.find
,因为它不是一个孩子,但如果您将它附加到空节点,则可以。另一种选择是使用.filter
$.ajax({
type:'POST',
url: 'confirm.php',
data: "really=yes&sure=yes",
success:function(data){
$('#greeting',data).appendTo('#one')
$('#something',data).appendTo('#two')
}
});
您可以从data
中提取并附加到您想要的位置。您也可以执行类似返回JSON的操作,而不是从html中提取html,只需从对象访问html。
$(data.greeting).appendTo('#one')
$(data.something).appendTo('#two')
响应必须如下:
({ 'greeting':'html', 'something' :'other html' })
答案 1 :(得分:0)
为什么不将confirm.php
中的答案与|
字符串在一起,然后当字符串作为变量数据返回时,您可以使用datas = data.split("|")
将其拆分并访问data[0]
,data[1]
等个人答案
答案 2 :(得分:-2)
(如果您对JSON感到满意,Meder的响应将会起作用,但正则表达式可能会更容易一些,并且对此也有效。)
您可能需要使用正则表达式来分解响应文本。例如,如果响应文本是:
<p id='greeting'> Hello there and Welcome </p>
<p id='something'>First timer visiting our site eh'</p>
然后你可以使用这样的一些JavaScript:
var greeting = response_text.match(/<p id='greeting'>.*</p>/);
var something = response_text.match(/<p id='something'>.*</p>);
(此网站非常适合学习正则表达式:http://gskinner.com/RegExr/)