JavaScript按名称获取元素

时间:2012-04-24 21:16:49

标签: javascript html dom

考虑这个功能:

function validate()
{
  var acc = document.getElementsByName('acc').value;
  var pass = document.getElementsByName('pass').value;

  alert (acc);
}

这个HTML部分:

<table border="0" cellpadding="2" cellspacing="0" valign="top">
    <tr>
        <td class="td1">Account</td>
        <td class="td2"><input type="text" name="acc" /></td>
    </tr>
    <tr class="td1">
        <td>Password</td>
        <td class="td2"><input type="password" name="pass" /></td>
    </tr>
</table>
<div><button onClick="validate()" class="cupid-greenx">Login now</button></div>

警告框正在显示,但显示“未定义”。

6 个答案:

答案 0 :(得分:219)

document.getElementsByName返回元素的NodeList,因此它没有属性.value。因此你看到了未定义的错误。

你想要的是document.getElementsByName("acc")[0].value

答案 1 :(得分:23)

请注意此方法中的复数:

document.getElementsByName()

返回一个元素数组,因此使用[0]来获得第一个元素,例如

document.getElementsByName()[0]

答案 2 :(得分:9)

你想要这个:

function validate() {
    var acc = document.getElementsByName('acc')[0].value;
    var pass = document.getElementsByName('pass')[0].value;

    alert (acc);
}

答案 3 :(得分:5)

document.getElementsByName("myInput")[0].value;

答案 4 :(得分:5)

方法document.getElementsByName返回元素数组。例如,您应首先选择。

document.getElementsByName('acc')[0].value

答案 5 :(得分:5)

这里的所有答案似乎都过时了。请立即使用:

document.querySelector("[name='acc']");
document.querySelector("[name='pass']")
相关问题