使用jQuery ajax响应数据

时间:2010-06-13 04:20:26

标签: jquery

我正在使用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
            }
        });

3 个答案:

答案 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/