recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - 一个getElementById在for循环中的报错

1

2

3

4

5

6

7

8

9

<code>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);

 }

</code>

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


我将代码变为

1

2

3

4

5

6

7

8

9

10

11

<code>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);

 }

 

</code>

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

1

2

3

4

5

6

7

<code>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);

 }

</code>

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

PHPzPHPz2902 Il y a quelques jours506

répondre à tous(4)je répondrai

  • 大家讲道理

    大家讲道理2017-04-10 15:18:08

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

    répondre
    0
  • 怪我咯

    怪我咯2017-04-10 15:18:08

    看看 console 的输出:

    1

    2

    3

    <code>new Array('"username"','"email"','"password"','"newpassword"');

    [""username"", ""email"", ""password"", ""newpassword""]

    </code>

    其实这样,已经是 string Array

    1

    2

    3

    <code>new Array('username','email','password','newpassword');

    ["username", "email", "password", "newpassword"]

    </code>

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-10 15:18:08

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

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

    répondre
    0
  • 怪我咯

    怪我咯2017-04-10 15:18:08

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

    répondre
    0
  • Annulerrépondre