ajax获取另一个站点的内容并使用选择器

时间:2014-06-18 17:13:33

标签: javascript php jquery ajax json

我有这个ajax电话

  var content = $.ajax({
                url: "ajax.php",
                async: false
            }).responseText;

此回复是ajax.php网站的简单html。

我想在此回复content上使用选择器 例如:

$( "li" ).each(function( index ) {
alert( $( this ).text() );
});

1 个答案:

答案 0 :(得分:3)

您可以使用jQuery来解析HTML,然后查询它(所有这些都不会将其添加到文档中):

var elements = $(content);
elements.find("li").each(/*...*/);

旁注:

如果“另一个网站”是指另一个网站,而不是您提供的ajax.php示例,请注意该呼叫可能会被Same Origin Policy阻止。也就是说,除非另一个站点通过CORS授予您的请求页面访问权限(并且您使用的浏览器为supports CORS properly,而不是IE8或IE9,它们支持但非标准且未在jQuery中启用,或IE7或更早版本根本没有它。 (您在下面的评论中说,您的意思是您网站上的另一个页面,因此不适用。)


附注2:如果您使用的是jQuery的$.ajax,通常不希望直接转到responseText。代替:

var content;
$.ajax({
    url: "ajax.php",
    async: false,
    success: function(data) {
        content = data;
    }
});

旁注#3:async: false几乎普遍是一个坏主意(tm),它会在更长时间之前从jQuery中删除。拥抱异步性。