ajax - 仅返回responsetext的一部分

时间:2011-05-10 12:50:07

标签: javascript html xml ajax

以下只是我的ajax代码,目前我的变量'resp'正在从test.php返回一个完整的响应。有什么办法可以在指定的标签之间返回responseText吗?即。只需返回test.php的id =“xyz”div中的html的responseText?

var loc="test.php?myinput=apple";
ajax.onreadystatechange=function() {
        if (ajax.readyState==4  && ajax.status == 200) {    
            var resp =  ajax.responseText;
        }
    }
ajax.open("GET",loc,true);
ajax.send(null);

4 个答案:

答案 0 :(得分:2)

您可以使用jquery简写函数load()在swift中执行此操作

$('#result').load('test.php' #container');

此处结果是您要放置响应文本的div container是test.php

指定的源元素位置

这就是你想要的吗?

答案 1 :(得分:1)

将您的ajax代码更改为:

if (ajax.readyState==4  && ajax.status == 200) {    
   eval(ajax.responseText);
}

然后在test.php页面中,写下像这样的响应

echo "document.getElementById('xyz').innerHTML='abc';";

答案 2 :(得分:1)

如果您愿意切换到jQuery,可以执行以下操作

$.ajax({
    url: 'test.php?myinput=apple',
    method: 'POST',
    success : function( data ) {
        var content = $(data).find('#xyz').text();
        // alternativly the HTML
        // var content = $(data).find('#xyz').html();
    }
});

答案 3 :(得分:1)

您是否尝试使用该响应更新HTML的某些部分? 如果是这样,您可以使用jQuery并调用接受特殊URL参数的load方法来加载部分返回的HTML:

工作示例:http://jsfiddle.net/marcosfromero/P5KTv/