我有这个HTML
<div>
<input />
<span ondblclick="setFocusToInput()">42</span>
</div>
在setFocusToInput()
方法中,如何将焦点设置为输入?
此示例高度简化。实际的html是树视图。树视图可以重复多次。因此,我不能在div,输入或跨度上使用id。
我实际拥有的唯一引用是ondblclick事件生成的事件。唯一可以肯定的是,直接在跨度之前的文本框是与跨度相关联的文本框。
树视图中发生的事情是用户双击span(树视图文本),然后树视图取消隐藏文本框,以便用户可以编辑该值。
我需要能够将焦点设置到此文本框。
答案 0 :(得分:1)
您可以修改setFocusToInput
函数以获取一个参数,并通过将this
作为参数
<div>
<input />
<span ondblclick="setFocusToInput(this)">42</span>
</div>
然后在函数中获取父节点并找到第一个input
字段
function setFocusToInput(htmlNode)
{
htmlNode.parentNode.getElementsByTagName("input")[0].focus();
}