使用 jquery 修改分离的 html 元素(更改 img.src)

发布于 2024-11-18 00:35:44 字数 619 浏览 0 评论 0原文

我想在 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 imgs within html.

What am I missing here?

The solution does not need to use jquery (can also be plain javascript or backbone)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝颜夕 2024-11-25 00:35:44

正如@Felix Kling 指出的:html 需要是一个 DOM 元素,但它是一个 String

html = $(html);

解决了这个问题

as @Felix Kling pointed out: html needs to be a DOM Element, but it was a String

html = $(html);

fixed the issue

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文