脚本适用于Chrome但不适用于IE

Han*_*yer 1 javascript internet-explorer google-chrome cross-browser

这很简单,但我不知道为什么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";
        }

    }
Run Code Online (Sandbox Code Playgroud)

如果我更改下拉列表的值,它会调用:

  <select id="workout" onchange="changeele2()">
      <option>No</option>
      <option>Yes</option>
  </select>
Run Code Online (Sandbox Code Playgroud)

两者都不适用于带文字的按钮

我只是找不到它.有没有人有想法?

jfr*_*d00 5

执行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";
    }
}
Run Code Online (Sandbox Code Playgroud)

有些浏览器使用与元素id相同的名称创建一个全局变量,这可能是它有时可以工作的原因,但您不应该依赖它.