如何在加载dom的JavaScript上替换页面上的所有空<img src=""/>?

时间:2010-07-16 19:46:47

标签: javascript html dom replace

我需要一个在加载DOM时启动的函数。

在我的HTML页面中有几个空的图像标签,我希望在加载所有内容时将图像名称添加到src-property中以获得类似

的内容
<img src="blank.jpg">.

祝福 克里斯

6 个答案:

答案 0 :(得分:8)

构建<img src="">无效。永远不要使用它。

它无效,因为空网址表示当前网页的网址。但是当前页面是HTML文档,而不是图像。浏览器可以对当前页面进行另一次查询,并尝试将其用作图像(请参阅this page)。

答案 1 :(得分:6)

function replaceSrc()
{

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

    for(var i = 0; i < images.length; i++)
    {
        var img = images[i];

        if(img.src.length == 0)
        {
            img.src = 'blank.jpg';
        }
    }
}


window.onload = replaceSrc;

如果您想为事件添加多个处理程序,请执行以下操作:

document.addEventListener('load', replaceSrc, false) //W3C
document.attachEvent('onload', replaceSrc); //IE

使用jQuery

   $(document)
     .ready(function() { $('img')
                             .filter(function(){ return this.src.length == 0 })
                                 .each(function () { this.src = 'blank.jpg'})  });

编辑:

我意识到您可能希望在图像加载之前设置src属性,因此我将代码更改为触发文档的加载事件,该事件在图像开始加载之前发生。

答案 2 :(得分:3)

使用jQuery!这很容易。

$('img').attr('src','new-image-name.jpg')

这会将每个src代码的img属性设置为“new-image-name.jpg”。

答案 3 :(得分:2)

使用jQuery,这会在页面加载时将所有带有空白src属性的img元素的src属性设置为“blank.jpg”。

$.ready(function() {
  $("img[src='']").attr("src", "blank.jpg");
});

答案 4 :(得分:0)

您可以使用此脚本。

# Script AddImage.txt
var string pagefile, image, html
# Read in the page file.
cat $pagefile > $html
# Replace all instances of "<img src="blank.jpg">" with the specified image.
while ( { sen -r -c "^<img src=&\>^" $html } > 0 )
    sal -r -c "^<img src=&\>^" ("<img src=\""+$image+"\">") $html > null
# Write page back.
echo $html > { echo $pagefile }

脚本是biterscripting。将脚本保存在文件“C:/Scripts/AddImage.txt”中,使用此命令运行它。

script "C:/Scripts/AddImage.txt" pagefile("/path/to/page.html") image("blank.jpg")

它将用“blank.jpg”替换上一张图像。

答案 5 :(得分:0)

使用JQuery,您可以使用以下代码简单地解决您的问题。

$(function(){
   $("img[src='']").attr("src", "blank.jpg");
});