$.ajax({
url: "getHTML.php",
data: {url: "http://www.google.com"},
success: function(e){
var html = e;
$('img', html).each(function(){
$(this).attr("src", "http://google.com/logo.jpg");
});
$('a', html).each(function(){
$(this).attr("href", "http://google.com/");
});
$('body').html(html);
}
});
但基本上,没有设置更改。
$(this).attr("src", "http://google.com/logo.jpg");
返回带有google徽标作为源属性的片段,但
$(this).replaceWith($(this).attr("src", "http://google.com/logo.jpg"));
没有工作。
答案 0 :(得分:7)
此:
$('img', html).each(function(){
$(this).attr("src", "http://google.com/logo.jpg");
});
大概是指:
html
img
标记就是这样。您不会存储该对象,因此您无法使用其更新的内容 - 也不会(或应该)更改html
。
尝试改为:
var d = $(html);
$('img', d).each(function() {
$(this).attr("src", "http://google.com/logo.jpg");
});
$('a', d).each(function() {
$(this).attr("href", "http://google.com/");
});
$('body').html(d.html());
虽然如果所有属性都相同,您可以跳过each()
次调用:
var d = $(html);
$('img', d).attr("src", "http://google.com/logo.jpg");
$('a', d).attr("href", "http://google.com/");
$('body').html(d.html());