1

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

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

我就是找不到。有人有想法吗?

4

2 回答 2

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 相同的名称来创建一个全局变量,因此这可能是它有时工作的原因,但你不应该依赖它。

于 2013-04-17T22:29:37.720 回答
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";

        }
}
于 2013-04-17T22:30:38.650 回答