JavaScript get element by name

2022-08-30 02:11:58

请考虑以下函数:

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>

显示警报框,但显示“未定义”。


答案 1

您看到该错误的原因是因为返回了 a 的元素。元素的 a 没有属性。document.getElementsByNameNodeListNodeList.value

请改用以下内容:

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

答案 2

请注意此方法中的复数形式:

document.getElementsByName()

这返回一个元素数组,因此使用[0]获取第一个匹配项,例如

document.getElementsByName()[0]