我正在做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');
});
正如您所看到的,有一段代码可以用'cnn.com'替换部分网址,这是必要的,因为网址路径经常附加到我的网站域。
问题是替换功能似乎不起作用。我在控制台中没有收到任何错误,所以我怀疑我必须将代码放在其他地方。另一种可能是代码找不到a
,因为Ajax加载数据进程不完整。我尝试用事件ajaxComplete修复它没有运气。
为了让函数找到并替换它,我需要在代码中更改什么?
ps我知道有一段proxy.php代码,但我宁愿在浏览器端这样做(javascript / jquery)
答案 0 :(得分:2)
你正在创建一个jQuery对象,操纵元素,但是你没有追加它,最后data
保持不变,试试这个:
$(data).find('a').attr('href', function(_, href){
return href.replace(/\/\/[^\/]+/, '//cnn.com')
}).end().appendTo('#result');