javascript - 如何获取下一个文本输入的值?

标签 javascript

我正在 IE 7 中完成我的项目,我想知道如何在单击文本输入前面的标签时获取文本输入的值。

这是我的 DOM:

<table>
<tr>
<td>
 <label id="lbl_name">Name:</label>
</td>
<td>
 <input type="text" id="name" />
</td>
</tr>
</table>

我尝试使用 nextSibling 但我得到的是空白值。

document.getElementById('lbl_name').attachEvent('onclick', function () {
 alert(document.activeElement.nextSibling.nodeValue);
});

请问有什么帮助吗?如果你能以非 jquery 的方式分享你的代码。谢谢

最佳答案

输入不是标签的同级。要使用该方法,您需要:

  1. 获取父节点(td)
  2. 获取该节点的下一个兄弟节点
  3. 获取该节点的第一个输入后代

但是,标签目前没有用,因为它根本与输入无关。如果您修复标记:

<label id="lbl_name" for="name">Name:</label>

你可以:

document.getElementById( this.getAttribute('for') ).value

关于javascript - 如何获取下一个文本输入的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060030/

相关文章:

php - AJAX编码问题

javascript - 制作一个带有复选框的表,用于更新 React 中的表值

javascript - JS 委托(delegate)/扩展现有功能

javascript - Knockout - 添加时如何保持模板输入与可观察数组同步?

javascript - Sequelize 播种机找不到模型的正确列名称

javascript - 将 div 置于高度未知的 div 之下

javascript - 将事件数据传递给javascript中的事件处理程序

javascript - 为什么人们在许多 jQuery 插件中分配 $this = $(this) ?

javascript - 了解 Node 流和 vinyl-fs

javascript - 使用映射函数格式化数据+在数组中获取数组但不想要