首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在尝试用javascript交换图像。

我正在尝试用javascript交换图像。
EN

Stack Overflow用户
提问于 2017-10-30 21:35:22
回答 1查看 78关注 0票数 0

我正在尝试将src映像与id映像交换。从我在其他例子中看到的情况来看,我认为这将是做这件事的方法。对我来说肯定不管用。这是我第一次在这里发帖,所以任何帮助我的问题格式化也将是非常感谢的。

HTML:

代码语言:javascript
复制
<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Image Rollovers</title>
    <link rel="stylesheet" href="main.css">
    <script src="rollover.js"></script>
</head>

<body>
    <section>
        <h1>Image Rollovers</h1>
        <ul id="image_rollovers">
            <li><img src="images/h1.jpg" alt="" id="images/h4.jpg"></li>
            <li><img src="images/h2.jpg" alt="" id="images/h5.jpg"></li>
            <li><img src="images/h3.jpg" alt="" id="images/h6.jpg"></li>
        </ul>        
    </section>
</body>
</html>

Javascript:

代码语言:javascript
复制
//FUNCTION
var $ = function (id) { 
        return document.getElementById(id); 
}       

//MOUSE EVENT FUNCTIONS
var rollover = function(evt) {
    var link = this;
    var imageNode = $("img");
    imageNode.setAttribute("img", link.getAttribute("id"));
}

var rollout = function(evt) {
    var link = this;
    var imageNode = $("id");
    imageNode.setAttribute("id", link.getAttribute("img"));
}

//ONLOAD EVENT HANDLER      
window.onload = function () {

        //GET ALL IMG TAGS
        var linkNode = $("image_rollovers");
        var images = linkNode.getElementsByTagName("img");
        //PROCESS EACH IMAGE
        var i, linkNode, image;
        for ( i=0; i<images.length; i++)
        {
            linkNode = images[i];
            linkNode.onmouseover = rollover;
            linkNode.onmouseout = rollout; 
        }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-30 22:12:22

首先,在HTML中有一个错误,在第三个<img的末尾缺少一个<img

代码语言:javascript
复制
        <li><img src="images/h3.jpg" alt="" id="images/h6.jpg"></li>
                                                              ^

其次,您正在调用$("img")$("id"),但是没有带有这些ID的元素。您应该只是将一个变量设置为link的适当属性。rolloverrollout不需要不同的函数,因为它们都只是交换idsrc属性。

代码语言:javascript
复制
//MOUSE EVENT FUNCTIONS
function swap_src_and_id(evt) {
    var link = this;
    var src = link.getAttribute("src");
    link.setAttribute("src", link.getAttribute("id"));
    link.setAttribute("id", src);
}

第三,您正在调用linkNode.getElementsByTagName("src"),但是没有这样的标记。应该是img

代码语言:javascript
复制
window.onload = function () {

    //GET ALL IMG TAGS
    var linkNode = $("image_rollovers");
    var images = linkNode.getElementsByTagName("img");
    //PROCESS EACH IMAGE
    var i, linkNode, image;
    for ( i=0; i<images.length; i++)
    {
        linkNode = images[i];
        linkNode.onmouseover = swap_src_and_id;
        linkNode.onmouseout = swap_src_and_id; 
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47024540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档