使用JavaScript替换带有src属性的多个图像

时间:2012-03-28 22:46:07

标签: javascript

我有一个变量myvar = document.getElementById('myid').innerHTML,我想使用JavaScript将所有图像替换为相应的src属性。

编辑:很抱歉!我试图简洁,时间宝贵而且所有 - 显然我失败了。

借用Jon的解释:

我想在myid中存储id为myvar的所有元素,然后迭代它们以将所有元素更改为纯文本 - 纯文本是其{{1}的值} attributes。

这是我想要实现的一个例子。

我从这样的事情开始:

src

它会转化为:

<img src="someimage.png"><br>
Lorem ipsum dolor sit amet<br>
<img src="anotherimage.jpg"><br>
Lorem ipsum dolor sit amet

4 个答案:

答案 0 :(得分:0)

我不知道你要做什么,但是如果你想在变量下使用<img>,请使用:

var images = myvar.getElementsByTagName('img');

for (var i = 0; i < images.length; i++){
    images[i].src = "foo"; // changes the src of the image.
}

我希望它有所帮助。下次问一个更明确的问题......

答案 1 :(得分:0)

我不知道你在谈论世界的是什么,所以我只是建议使用jQuery(因为它很简单)并随心所欲地做任何事情。

$.each($("img", $("#yourTargetDivOrBlankForBody"), function() {
    var $img = $(this);

    $img.attr("src", blahl balh);

    //Any other operations.
});

答案 2 :(得分:0)

新浏览器......

[].slice.call(element.querySelectorAll('img')).forEach(function(img) {
    img.src = 'new url';
});

旧浏览器......

var imgs = element.getElementsByTagName('img');

for (var i = 0, length = imgs.length; i < length; i++) {
    imgs[i].src = 'new url';
}

答案 3 :(得分:0)

似乎每个人都错过了你的要求,也许你已经“澄清”了这个问题。这应该适合:

var image, images = document.images;
var i = images.length;

while (i--) {
  image = images[i];
  image.parentNode.replaceChild(document.createTextNode(image.src), image);
}

它将使用src属性值的文本节点替换文档中的所有图像。请注意,当您替换每个元素时, images 集合将变得更短,因此向后循环。你也可以这样做:

while (images.length) { 
  image = images[0];
  image.parentNode.replaceChild(document.createTextNode(image.src), image);
}

如果要将其限制为仅包含paricular元素内的图像,请使用element.getElementsByTagName('img')获取对该元素的引用并将 images 创建为NodeList;