jQuery.attr() 不更新 HTML 字符串
jQuery.attr() not updating the HTML string?
$.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);
}
});
- 运行 AJAX
- 运行 PHP,它回显 GET 请求中 URL 的 HTML
- 将响应另存为 HTML 字符串
- 使用 jQuery 解析 HTML 字符串并替换所有链接和图像
- 在页面中显示
但基本上,没有设置更改。
$(this).attr("src", "http://google.com/logo.jpg");
返回以 Google 徽标作为源属性的片段,但
$(this).replaceWith($(this).attr("src", "http://google.com/logo.jpg"));
行不通。
这个:
$('img', html).each(function(){
$(this).attr("src", "http://google.com/logo.jpg");
});
大致意思是:
- 从
html
创建文档片段和 jQuery 对象 - 修改该对象中的任何
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());
相关文章:
- 使用 node.js 和 javascript 更新 HTML 对象
- 如何从弹簧控制器方法更新html img src
- 以非阻塞方式更新HTML画布
- 如何在加载页面后更新 HTML
- 根据json更新html
- Angular数组更改时更新HTML视图
- 根据ajax json响应更新html表
- 从数组中删除值,用新的数组总数更新html或'$'如果没有总计
- 测试React中的点击事件是否会更新HTML
- 动态更新Html中的列表
- Jquery函数更新html
- JavaScript/jQuery:在选择列表更改时更新HTML
- 通过ajax更新HTML块内容
- 当我更新HTML时,Keydown事件停止触发
- 动态更改语言时,应更新HTML lang属性
- 更新html页面中的数据
- 如何使用BackboneJs获取JSON数据和更新html
- 如何在更改一列时更新HTML表行中的单元格
- 无法使用 innerHTML 使用 JavaScript 更新 HTML 表
- 当表单使用 ajax 和 Codeigniter 更改时自动更新 html