Javascript元素为null

时间:2011-08-01 08:23:36

标签: javascript

我是javascrit的初学者,我试图获得一个表格结果globaly

单选按钮

<input type='radio' name='supporter' id='supporter' value='yes'>

和其他页面上的javascript

<script type="text/javascript">
function show(){
    var supporter = document.getElementById('supporter');
    if (supporter.value == "yes") {
        alert("it works")
    }
}

show();
</script>

我一直收到错误,这个:支持者是空的

可以请别人告诉我我失踪了什么?

3 个答案:

答案 0 :(得分:5)

当执行脚本时,它将取决于。 Javascript由浏览器在遇到时执行,这意味着如果您的代码片段存在于之前的 HTML元素中,那么在该时间点,HTML元素尚不存在。

一种解决方案是将Javascript放在页面的最末端,或将该代码移到document.onload处理程序中。

document.onload = function () {
    show();
};

答案 1 :(得分:3)

您可能在代码中达到<input>元素之前运行该脚本,因此当您尝试访问它时它不存在。确保您的脚本在输入后出现(或者将脚本包装在文档onload事件处理程序中,以便在页面完全加载之前它不会执行)

答案 2 :(得分:3)

将其放在输入元素之后或之下。尚未加载input元素并执行javascript以使您获得null。

解决方案1:

<html>
<head></head>
    <body>
    <input id="supporter" value="yes" />
    <script type="text/javascript">
    function show()
    {
        var supporter = document.getElementById('supporter');
     if (supporter.value == "yes") 
         {
          alert("it works")
         }
    }

    show();
    </script>
    </body>
</html>

解决方案2:

或者如果你把脚本放在html的头部,只有在加载页面时才运行该函数。

<html>
<head>
    <script type="text/javascript" src="yourcodes.js">
    </script>    
</head>
<body>
    <input id="supporter" value="yes" />
</body>
</html>

在单独的javascript页面上:

function show()
{
    var supporter = document.getElementById('supporter');
     if (supporter.value == "yes") 
     {
       alert("it works");
     }
}

//When page loaded
document.onload = function(){
    show();
};

注意:您不必将<script></script>放入JavaScript文件中。