按ID获取元素不起作用

时间:2015-03-25 16:24:43

标签: javascript if-statement alert getelementbyid

所以,当我的价值是gsm时,我只需要一个警告(“它很好用”)但它不想工作!你能帮助我吗?没有改变我的大部分代码?除非它确实是错误的。

这是我的Html:

<select id="telefoonkeuze" onchange="Checkfunction()">
        <option value="gsm" id="gsm">gsm</option>
        <option value="telefoon">telefoon</option>
</select>

这是我的js:

        var gsm = document.getElementById("gsm");

        function Checkfunction() {
            var x = document.getElementById("telefoonkeuze").value;
            if (x == gsm) {
                alert("nice it works!");
            }
        }

4 个答案:

答案 0 :(得分:3)

当你这样做时

var gsm = document.getElementById("gsm");

您正在为gsm变量分配一个元素。然后将该元素与值进行比较。

只需更改该行

var gsm='gsm';

或对变量进行elimate并将'gsm'字符串放在if语句中。

您也可能无法获得所选的值。虽然有另一个线索。 Get selected value in dropdown list using JavaScript?

答案 1 :(得分:0)

var Checkfunction = function() {
  var x = document.getElementById("telefoonkeuze");
  if (x.value == "gsm") {
    alert("here you go");
  }
}
<select id="telefoonkeuze" onchange="Checkfunction()">
  <option value="gsm" id="gsm">gsm</option>
  <option value="telefoon">telefoon</option>
</select>

答案 2 :(得分:0)

你可以这样做。 http://jsfiddle.net/c8go6663/2/

 var gsm = document.getElementById("gsm").value;

        Checkfunction = function() {
            var x = document.getElementById("telefoonkeuze").value;
            if (x == gsm) {
                alert("nice it works!");
            }
        }

答案 3 :(得分:0)

以下部分是对代码的纯JS修改。您也可以在this fiddle中查看它(适应jsfiddle环境):

<html>
  <head>
    <title>getElementById fails</title>
    <script type="text/javascript">
        var gsm;

        function Checkfunction() {
            var x = document.getElementById("telefoonkeuze").value;
            if (x === gsm) {
                alert("nice it works!");
            }
        }

        window.addEventListener ( "load", function () { gsm = document.getElementById('gsm').value; 1; });
    </script>
  </head>
  <body>
      <div>
          <select id="telefoonkeuze" onchange="Checkfunction()">
                  <option value="gsm" id="gsm">gsm</option>
                  <option value="telefoon">telefoon</option>
          </select>
     </div>
  </body>
</html>

注意

这个答案应该是健壮且有效的。 @RightClick仍然应该获得积分(和接受),因为他确定了原始代码中的明确缺陷(我,羞辱我,起初没有发现......)。