javascript - 用getElementsByTagName和getElementById获取该元素的属性为什么效果不一样?
怪我咯
怪我咯 2017-04-10 17:28:48
[JavaScript讨论组]

HTML代码

<h1>Amy</h1>
<ul>
    <li>
        <a href = "img/amy-1.jpg" onclick="showPic(this);return false;" title = "amy1"> amy1</a>
    </li>
    <li>
        <a href = "img/amy-2.jpg" onclick="showPic(this);return false;" title = "amy2"> amy2</a>
    </li>
    <li>
        <a href = "img/amy-3.jpg" onclick="showPic(this);return false;" title = "amy3"> amy3</a>
    </li>
    <li>
        <a href = "img/amy-4.jpg" onclick="showPic(this);return false;" title = "amy4"> amy4</a>
    </li>
    <img id="placeholder" src="img/test.jpg" alt="my image gallery" />
</ul>
<script type="text/javascript" src="scripts/shoWPic.js"></script>

js代码

     function showPic(whichpic){
        var source = whichpic.getAttribute("href");
        var placeholder = document.getElementById("placeholder");
        placeholder.setAttribute("src",source);
     }

把js代码里第三行document.getElementById("placeholder")换成document.getElementsByTagName("img")
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(4)
黄舟

想换成getElementsByTagName获取那个img节点的话,应该改成document.getElementsByTagName("img")[0],因为getElementsByTagName("img")获取到的是img节点数组。

巴扎黑

document.getElementsByTagName("img")返回的是document中标签名为img的合集,如果你想换需要写为document.getElementsByTagName("img")[0]

伊谢尔伦

通过getElementsByTagName获取到的是个元素集合,你可以把它看成一个数组,然后通过下标的方式选择你需要的目标元素。不管元素有多少个,它都得通过下标的方式去选择。例如:document.body.getElementsByTagName("p")[0],这段代码它明确的告诉程序,要找的元素是body里面第一个p元素。

伊谢尔伦

通过getElementById获得的是一个元素,而getElementsByTagName获得的是一个集合,比如getElementsByTagName("img")得到的是所有标签为img的数组集合。可以通过下标方法getElementsByTagName("img")[i]来获取每一个img

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号