如何在不使用id指定哪个文本框的情况下将焦点设置到文本框

时间:2016-09-25 19:12:50

标签: html

我有这个HTML

<div>
  <input />
  <span ondblclick="setFocusToInput()">42</span>
</div>

setFocusToInput()方法中,如何将焦点设置为输入?

此示例高度简化。实际的html是树视图。树视图可以重复多次。因此,我不能在div,输入或跨度上使用id。

我实际拥有的唯一引用是ondblclick事件生成的事件。唯一可以肯定的是,直接在跨度之前的文本框是与跨度相关联的文本框。

树视图中发生的事情是用户双击span(树视图文本),然后树视图取消隐藏文本框,以便用户可以编辑该值。

我需要能够将焦点设置到此文本框。

1 个答案:

答案 0 :(得分:1)

您可以修改setFocusToInput函数以获取一个参数,并通过将this作为参数

来调用它
<div>
  <input />
  <span ondblclick="setFocusToInput(this)">42</span>
</div>

然后在函数中获取父节点并找到第一个input字段

function setFocusToInput(htmlNode)
{
    htmlNode.parentNode.getElementsByTagName("input")[0].focus();
}