javascript - 一个getElementById在for循环中的报错
PHPz
PHPz 2017-04-10 15:16:08
[JavaScript讨论组]
var a=new Array('"username"','"email"','"password"','"newpassword"');
for(var i=0;i<=4;i++){
    var m=a[i];
    console.log(m);


console.log(document.getElementById(m).value);
 }

代码很简单,就是读数组中的字符串然后去getElementById,可是报错了


我将代码变为

var a=new Array('"username"','"email"','"password"','"newpassword"');
for(var i=0;i<=4;i++){
    var m=a[i];
    console.log(m);
    m="username";


console.log(document.getElementById(m).value);
 }

就可以,想请问大家问题出在哪里,还是我哪里疏忽了。
按大家所说的我改为

var a=new Array("username","email","password","newpassword");
for(var i=0;i<=4;i++){
    var m=a[i];
    console.log(m);
 console.log(document.getElementById(m).value);
 }

依然报错,不知道原因在哪里

PHPz
PHPz

学习是最好的投资!

全部回复(4)
大家讲道理

Array放字符串,为什么要这样呢
...
var a=new Array('"username"','"email"','"password"','"newpassword"');
....
改为
var a=new Array("username","email","password","newpassword");

怪我咯

看看 console 的输出:

new Array('"username"','"email"','"password"','"newpassword"');
[""username"", ""email"", ""password"", ""newpassword""]

其实这样,已经是 string Array

new Array('username','email','password','newpassword');
["username", "email", "password", "newpassword"]
PHP中文网

document.getElementById('"domID"')这样是拿不到值的,返回的null
要获取一个ID元素,向楼上说的,把外面的单引号去掉;

你第二个方法里面,针对m="username"可以,是因为for循环的时候每次m的值都是"username";而跟你的数组没有关系啦~

怪我咯

问题1:数组越界。应该是for(var i=0;i<=a.length;i++)
问题2:数组中的元素,应该去掉双引号即可。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号