代码之家  ›  专栏  ›  技术社区  ›  Eddie

使用javascript获取图像源代码的替代方法

  •  2
  • Eddie  · 技术社区  · 17 年前

    所以我知道交换命名img标签的图像很容易

    <img name="image1" src="" />
    <script>document["image1"].src="candybar.jpg";</script>
    

    问题是,我被迫使用Content Server,无法命名图像标记。

    所以,如果我命名一个包装图像的DIV标记,我可以用它来指定有问题的图像标记吗?

    比如……

    <div id="namedDiv"><img src="" /></div>
    <script>
         var imgDiv=document.getElementById['namedDiv'];
         imgDiv.$imgtag$.src="candybar.jpg";
    </script>
    

    因为我认识父母,而且里面只有一个图像台, 我想说“嘿,迪夫,把你唯一的孩子给我做个对象”

    4 回复  |  直到 17 年前
        1
  •  2
  •   Eldar Djafarov    17 年前

    每个DOM节点都有childnodes属性,它是一个节点数组。你可以选第一个。

    <script>
         var imgDiv=document.getElementById['namedDiv'];
         imgDiv.childNodes[0].src="candybar.jpg";
    </script>
    
        2
  •  4
  •   annakata    17 年前

    是的,如下所示:

    document.getElementById('namedDiv').getElementsByTagName('img')[0].src = 'mynewpath.jpg';
    
        3
  •  1
  •   NickFitz    17 年前

    根据标记和浏览器, <img> 元素不能是唯一的子元素。例如,如果有任何空白,例如换行符,那么除IE以外的许多浏览器都会创建一个文本节点。

    最简单的方法是使用 getElementsByTagName 包装元素的方法,该方法返回一个节点列表,并获取该节点列表中的第一个元素:

    var div = document.getElementById("namedDiv");
    var image = div.getElementsByTagName("img")[0];
    image.src = "candybar.jpg";
    

    如果您不介意,可以缩短时间,使其稍微难以遵循:

    document.getElementById("namedDiv").getElementsByTagName("img")[0].src = "candybar.jpg";
    

    但这使得当你犯错误时调试起来有点困难;-)

        4
  •  0
  •   Ratón vaquero    17 年前

    为什么不使用CSS样式和sprite在没有javascript的情况下获得相同的结果呢???????

    想法: http://www.pixelovers.com/css-sprites-mejora-rendimiento-web-i-37249

    我可以解释一下。)