使用jqueryajax响应数据

使用jqueryajax响应数据,jquery,Jquery,我正在使用AJAXPOST,并且正在接收html格式的数据。我需要分割数据并将数据片段放在整个页面上。我将我的回复数据构建为类似于您好,欢迎第一次访问我们的网站,呃,这有点复杂和动态,但如果这个问题得到回答,我就可以找到答案。谢谢 $.ajax({ type:'POST', url: 'confirm.php', data: "really=yes&sure=yes", success:fun

我正在使用AJAXPOST,并且正在接收html格式的数据。我需要分割数据并将数据片段放在整个页面上。我将我的回复数据构建为类似于

您好,欢迎

第一次访问我们的网站,呃

,这有点复杂和动态,但如果这个问题得到回答,我就可以找到答案。谢谢

$.ajax({
            type:'POST',
            url: 'confirm.php',
            data: "really=yes&sure=yes",
            success:function(data){
                    //Need to split data here
            }
        });

更新:刚刚意识到您可能应该这样做:

success:function(data) {
    data = $('<div/>').append(data);
    $('#greeting',data).appendTo('#one')
    $('#something',data).appendTo('#two')
}
您可以从
数据中提取
并附加到您想要的位置。您还可以执行类似于返回JSON的操作,而不是从html中提取html,只需从对象访问html即可

$(data.greeting).appendTo('#one')
$(data.something).appendTo('#two')
答案应该是:

({ 'greeting':'html', 'something' :'other html' })
(如果您对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>);
var greeting=response\u text.match(/

.*

/); var something=response_text.match(/

.*

);

(本网站非常适合学习正则表达式:)

为什么不在
confirm.php
中使用
|
字符将答案串在一起,然后当字符串作为变量数据返回时,可以使用
datas=data.split(“|”)将其拆分,并使用
数据访问单个答案[0]
数据[1]
等。

1。我的回答不是针对JSON的,JSON是另一个技巧2。永远不要使用正则表达式来解析html。很快就会失败——jQuery在内部使用DOM方法解析和获取数据,这是您应该做的事情。请看一下Codeing Horror对regex和HTML的看法:正如他们所说,regex和HTML是个坏主意,但并不总是这样。例如,如果您只是在用户登录后在几个地方插入欢迎消息(例如,“welcome,Theopile”),那么几行正则表达式似乎并不是一个大罪行。对于OP——如果你有比你的例子更复杂的东西,或者如果AJAX响应的任何部分是由用户决定的,那么Meder是完全正确的。另外,出于某种原因,我不能给Meder的解决方案添加注释,但是如果你使用PHP,这个网站有一个使用JSON的好例子:谢谢你的回复,但由于某些原因,我不能通过id只获取一个标记。如果它起作用,我将获取整个字符串。您能详细介绍一下JSON解决方案吗?基本上,从服务器端返回JSON,这是一个解析为Javascript的字符串
json\u encode
如果您使用的是php,则会有所帮助<代码>数据类型:'json'
在客户端也需要。
var greeting = response_text.match(/<p id='greeting'>.*</p>/);
var something = response_text.match(/<p id='something'>.*</p>);