使用 jquery 修改分离的 html 元素(更改 img.src)
我想在 html 元素中为 img
标记的所有 src
添加前缀。
目前我的代码如下所示:
var html = ...;
$('img[src]', html).each(function(a) {
var $t = $(this);
var oldsrc = $t.attr('src');
$t.attr({src: prefix + oldsrc});
});
另一种选择
_.each($('img', html), function(img) {
var src = base + $(img).attr('src');
img.src = src;
});
当我在 dom 上运行此代码时,它可以完美地工作。但是,当我尝试对分离的 html
对象运行它时,它不起作用。 这会更新闭包内的 img
,但不会更新 html
内的 html img
。
我在这里缺少什么?
该解决方案不需要使用jquery(也可以是纯javascript或backbone)
I want to prefix all src
of img
tags in an html element.
Currently my code looks like this:
var html = ...;
$('img[src]', html).each(function(a) {
var $t = $(this);
var oldsrc = $t.attr('src');
$t.attr({src: prefix + oldsrc});
});
Another alternative
_.each($('img', html), function(img) {
var src = base + $(img).attr('src');
img.src = src;
});
When I run this code on the dom it works flawless. But when I try to run this against an detached html
object it won't work.
This updates the img
within the closure, but does not update html the img
s within html
.
What am I missing here?
The solution does not need to use jquery (can also be plain javascript or backbone)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
正如@Felix Kling 指出的:html 需要是一个 DOM 元素,但它是一个 String
解决了这个问题
as @Felix Kling pointed out: html needs to be a DOM Element, but it was a String
fixed the issue