[英]Javascript function variable going null outside loop
下面是我要检查的代码,不确定在这里我做错了什么,但是变量checkedValue的值在for循环外不起作用。
如果我从我评论过的部分进行测试[即在for循环内部],它的工作原理。
我已经测试过将数组变量声明为[0],以检查其是否至少具有初始值0,但未显示任何内容,就像变量为null一样。
<script>
var checkedValue = [];
function getItemId()
{
//var checkedValue = [];
var inputElements = document.getElementsByName('pick');
for(var i=0; i<=inputElements.length; i++)
{
if(inputElements[i].checked)
{
checkedValue.push(inputElements[i].value);
}
//document.getElementById("demo").innerHTML = checkedValue;
}
document.getElementById("demo").innerHTML = checkedValue;
}
</script>
变量checkedValue
在函数getItemId
内声明,但您正尝试在函数外部访问它。 更改变量的范围,您的问题将得到解决。
这里的问题在于javaScript中变量的范围 。
您可以声明var checkedValue = [];
在函数之外,或者您可以在声明中省略var
,以使其成为全局变量。
但是,您应该使用第一个变体,它更易于阅读和理解。
尝试在代码中进行一些更改: for(var i=0; i<=inputElements.length; ++i){
更改为for(var i=0; i<inputElements.length; i++){
并且document.getElementById("demo").innerHTML = checkedValue
到document.getElementById("demo").innerHTML = checkedValue.join(',')
。
我不明白为什么它不起作用,但是您在返回checkedValue时是否尝试过该方案?
<script>
function getItemId()
{
var checkedValue = [];
var inputElements = document.getElementsByName('pick');
for(var i=0; i<=inputElements.length; i++)
{
if(inputElements[i].checked)
{
checkedValue.push(inputElements[i].value);
}
}
return checkedValue;
}
document.getElementById("demo").innerHTML = getItemId();
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.