在IE 7中完成我的项目(不幸的是)。我有这个DOM,我想知道在我单击的按钮之后定位的最近输入文本的ID,而不是之前的输入文本。这是示例DOM:
<input type="text" id="txt1" />
<br/>
<button>Get ID</button>
<input type="text" id="txt2" />
<br/>
我知道如何在Jquery中做到这一点,但有人知道如何以“硬”方式(如果可能的话)这样做吗?感谢。
答案 0 :(得分:2)
如果他们总是这样的兄弟姐妹,那应该很容易。
var nextInputId = buttonClicked.nextSibling.id;
这是脆弱的,除了一组非常简单的有限标记之外,不建议使用它。
不幸的是,在IE9之前,nextElementSibling
不可用,所以如果你有一个文本节点(甚至是一些空格),你就会有些痛苦。
相对强大的一个非常好的解决方案是......
var node = buttonClicked;
var nextInputId = null;
while (node = node.nextSibling) {
if (node.tagName && node.tagName.toLowerCase() == "input") {
nextInputId = node.id;
break;
}
}