我单击了一个div元素,它应该触发检查该元素的当前innerHTML值,然后匹配条件并进行更改。

它是脚本相对于元素位置的位置,还是关于加载的位置?该脚本位于元素上方,但可用于第二次和随后的单击(未显示)。

第一次单击时,innerHTML不会更改,但是在第一次单击时,会发生其他事件,例如隐藏某些内容。

的HTML

<div id="element" onclick="changeHim();">Change me upon click.</div>


脚本

function changeHim() {
var currentLabel = document.getElementById("element");
if(currentLabel=="Change me upon click"){
document.getElementById("element").innerHTML="You have been changed.";
}


}

最佳答案

错误1。

你应该声明

var currentLabel = document.getElementById("element").innerHTML


代替

var currentLabel = document.getElementById("element");


错误2。

缺少函数右括号}

错误3。



if(currentLabel=="Change me upon click."){


代替

if(currentLabel=="Change me upon click"){


因为(innterHTML)文本中缺少一个DOT(。)

更正的完整代码(已测试)如下

<script>
  function changeHim() {
    var currentLabel = document.getElementById("element").innerHTML;
    if(currentLabel=="Change me upon click."){
      document.getElementById("element").innerHTML="You have been changed.";
      }
    }
</script>

<div id="element" onclick="changeHim();">Change me upon click.</div>

关于javascript - 为什么我的javascript onclick事件没有在第一次点击时触发?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31099400/

10-12 13:44