繁体   English   中英

如何在JavaScript中多次获取更改innerHTML的链接

[英]How to get a link to change innerHTML more than once in javascript

我试图获得一个链接,以便每次单击时更改javascript innerHTML。

function id_1(a){
    var id = document.getElementById(a);
    if (id.innerHTML==="innerHTML2"){
        id.innerHTML="innerHTML1";
    }
    if (id.innerHTML==="innerHTML1"){
        id.innerHTML="innerHTML2";
    }
}

<a id="id" href="javascript:id_1('id')">innerHTML1</a>

我希望它改变从innerHTML1innerHTML2innerHTML1innerHTML2等你点击链接。

现在只需要一次从innerHTML1切换到innerHTML2

您需要在第二个if语句中使用else if

第二次单击时(内容为innerHTML2时),代码中的逻辑类似于以下内容:

  1. 第一个if语句测试内容是否为innerHTML2,因此将内容更改为innerHTML1(您想要的内容)。
  2. 第二个if语句测试内容是否为innerHTML1,因为它是(因为它在步骤1中才被更改),因此内容又变回了innerHTML1(不是您想要的内容)。

因此,解决方案应如下所示:

function id_1(a){
    var id = document.getElementById(a); 
    if (id.innerHTML=="innerHTML2"){
        id.innerHTML="innerHTML1";
    }else if (id.innerHTML=="innerHTML1"){
        id.innerHTML="innerHTML2";
    }
}

为了强调这一点,您可以使代码保持相同的方式,但可以使用return来确保仅使用一个if语句。

function id_1(a){
    var id = document.getElementById(a); 
    if (id.innerHTML=="innerHTML2"){
        id.innerHTML="innerHTML1";
        return;
    }

    if (id.innerHTML=="innerHTML1"){
        id.innerHTML="innerHTML2";
        return;
    }
}

您只需要在if语句之间使用else

function id_1(a){
    var id = document.getElementById(a);
    if (id.innerHTML==="innerHTML2"){
        id.innerHTML="innerHTML1";
    } else if (id.innerHTML==="innerHTML1"){
        id.innerHTML="innerHTML2";
    }
}

如果没有else第二if会受到第一个if所做更改的影响。

由于innerHTML只有两种状态,因此您实际上可以简化为:

function id_1(a){
    var id = document.getElementById(a);
    if (id.innerHTML==="innerHTML2"){
        id.innerHTML="innerHTML1";
    } else {
        id.innerHTML="innerHTML2";
    }
}

您只是想念另一个:

<html>
<head>
<script>
function id_1(a){
    var id = document.getElementById(a);
    if (id.innerHTML==="innerHTML2"){
        id.innerHTML="innerHTML1";
    }
    else if (id.innerHTML==="innerHTML1"){
        id.innerHTML="innerHTML2";
    }

}
</script>
</head>
<body>
<a id="id" href="javascript:id_1('id')">innerHTML1</a>
</body>
</html>

小提琴: http//jsfiddle.net/WCgAS/

实际上,它一直在忙碌,但是正如您所写的那样,它切换为“ innerHTML1”,然后又回到“ innerHTML2”

因此只需将第二个“如果”更改为“否则”

<html>
<head>
<script>
function id_1(a){
    var id = document.getElementById(a);
    if (id.innerHTML==="innerHTML2"){
    id.innerHTML="innerHTML1";
    }
    else if (id.innerHTML==="innerHTML1"){
    id.innerHTML="innerHTML2";
    }
}
</script>
</head>
<body>
<a id="id" href="javascript:id_1('id')">innerHTML1</a>
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM