Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript元素为空_Javascript - Fatal编程技术网

Javascript元素为空

Javascript元素为空,javascript,Javascript,我是javascrit的乞丐,我正试图在全球范围内得到一个表单结果 单选按钮 <input type='radio' name='supporter' id='supporter' value='yes'> 还有另一页上的javascript <script type="text/javascript"> function show(){ var supporter = document.getElementById('supporter'); if

我是javascrit的乞丐,我正试图在全球范围内得到一个表单结果

单选按钮

<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>

函数show(){
var supporter=document.getElementById('supporter');
如果(supporter.value==“是”){
警报(“它工作”)
}
}
show();
我不断得到一个错误,这是:支持者是空的


有人能告诉我我遗漏了什么吗?

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

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

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

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

将其置于输入元素之后或之下。输入元素尚未加载,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>

注意:您不必将
放入JavaScript文件。

此JavaScript是否与单选按钮位于不同的页面上?因为那样不行。我对你的javascript没有任何问题,只是少了一个分号:p@Awea,即使没有semicolon@domanokz,我知道一个好主意article@Awea我的意思是它仍然有效,我没有说这是一个好的做法,我也用分号。而且,我并不是有意冒犯你或其他什么谢谢你的帮助,谢谢你花时间在我身上,但不管我怎么努力,都没有任何帮助,但是thanks@Side:domanokz的解决方案非常有效:@Side,请参阅我的修订版,谢谢@Felix,我觉得他真的错过了一些东西。我想,现在我不会出现脚本错误,但警报不会弹出,也不会出现错误。无论怎样,它都会鼓励糟糕的编程习惯,并导致完全缺乏组织代码。如果你没有时间用正确的方式去做,那就不要做。
<html>
<head>
    <script type="text/javascript" src="yourcodes.js">
    </script>    
</head>
<body>
    <input id="supporter" value="yes" />
</body>
</html>
function show()
{
    var supporter = document.getElementById('supporter');
     if (supporter.value == "yes") 
     {
       alert("it works");
     }
}

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