JavaScript 按名称获取元素

新手上路,请多包涵

考虑这个函数:

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>

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

原文由 Juliver Galleto 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 508
2 个回答

您看到该错误的原因是 document.getElementsByName 返回元素的 NodeList 。并且元素的 NodeList 没有 .value 属性。

改用这个:

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

原文由 Aidanc 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

 document.querySelector("[name='acc']");
document.querySelector("[name='pass']")

原文由 cmd05 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题