0

我正在Ajax get从 cnn.com 获取跨浏览器数据:

   $(function(){

    var site = 'http://cnn.com/';

    $.get('proxy.php', { site:site }, function(data){

    $(data).find('a').attr('href', function(_, href){
         return href.replace(/\/\/[^\/]+/, '//cnn.com')
    }); 

    $('#result').append(data);


    }, 'html');

    });

如您所见,有一段代码可以将部分 url 替换为“cnn.com”,这是必要的,因为 url 路径通常附加到我的网站域。问题是替换功能似乎不起作用。我在控制台中没有收到任何错误,所以我怀疑我必须将代码放在其他地方。另一种可能是代码找不到a,因为Ajax加载数据的过程没有完成。我尝试使用事件 ajaxComplete 修复它,但没有成功。为了让函数找到并替换它,我必须在代码中进行哪些更改?

ps 我知道有一段 proxy.php 代码,但我宁愿在浏览器端执行此操作(javascript/jquery)

4

1 回答 1

2

您正在创建一个 jQuery 对象,操作元素,但您没有附加它并最终data保持不变,试试这个:

$(data).find('a').attr('href', function(_, href){
     return href.replace(/\/\/[^\/]+/, '//cnn.com')
}).end().appendTo('#result');
于 2013-01-26T11:23:59.760 回答