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

时间:2013-04-17 22:27:20

标签: 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";
        }

    }

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

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

无法使用带文字的按钮

我无法找到它。有没有人有想法?

2 个答案:

答案 0 :(得分: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";
    }
}

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

答案 1 :(得分:1)

这个脚本根本不应该工作,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";

        }
}