脚本工作在Chrome,但不是IE

Script works in Chrome but not IE

本文关键字:IE 工作 Chrome 脚本      更新时间:2023-09-26

这很简单,但我不知道为什么IE不做我的innerHTML更改和其他东西。

    function changeele2() {
        document.getElementById("eleme2");
        document.getElementById("workout");
        document.getElementById("workoutweek");
        if(workout.value == "Yes") { 
            eleme2.style.display = "inline-block";
            workoutweek.className += " requiredField";
        }
    }

如果我改变下拉菜单的值它会调用:

  <select id="workout" onchange="changeele2()">
      <option>No</option>
      <option>Yes</option>
  </select>

都不能用Text

我就是找不出来。有人知道吗?

当您执行document.getElementById("eleme2")时,您必须保存该操作的结果并将其用于后续对该元素的访问。

function changeele2() {
    var eleme2 = document.getElementById("eleme2");
    var workout = document.getElementById("workout");
    var workoutweek = document.getElementById("workoutweek");
    if (workout.value == "Yes") { 
        eleme2.style.display = "inline-block";
        workoutweek.className += " requiredField";
    }
}

有些浏览器使用与元素id同名的全局变量,这可能是它有时工作的原因,但您不应该依赖于此

这个脚本根本不应该工作,chrome正在通过查找元素ID来挽救它。

你应该这样修改:

function changeele2()
    {
        var eleme2 = document.getElementById("eleme2");
        var workout = document.getElementById("workout");
        var workoutweek = document.getElementById("workoutweek");
        if(workout.value == "Yes") { 
        eleme2.style.display = "inline-block";
        workoutweek.className += " requiredField";
        }
}