Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击span时,将焦点放在span内的第一个表单元素上_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 单击span时,将焦点放在span内的第一个表单元素上

Javascript 单击span时,将焦点放在span内的第一个表单元素上,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我不知道在单击跨度时如何关注跨度内的第一个表单元素。我已经包括了我的代码,我也把“最近的”搞乱了,但没有运气 <form> <span> <input id="content" type="text"> <label for="content">Content</label> </span> </form> $('span').click(function() { $(this).find('i

我不知道在单击跨度时如何关注跨度内的第一个表单元素。我已经包括了我的代码,我也把“最近的”搞乱了,但没有运气

<form>
<span>
  <input id="content" type="text">
  <label for="content">Content</label>
</span>
</form>

$('span').click(function() {
    $(this).find('input').focus()
});

非常感谢您的帮助。

请确保在加载DOM后调用js

<script type="text/javascript">
  $(function(){
    $('span').click(function() {
      $(this).find('input').focus()
    });
  });
</script>

确保在加载DOM后调用js

<script type="text/javascript">
  $(function(){
    $('span').click(function() {
      $(this).find('input').focus()
    });
  });
</script>

为什么不使用标签触发此功能 跨度将仅覆盖标签和输入,因此,如果我理解正确,您希望即使在用户单击标签时,也能在输入上设置焦点,这可以通过如下方式实现:

<form>
    <span>
       <input name="content" id="content" type="text">
       <label for="content">Content</label>
    </span>
</form>

为什么不使用标签触发此功能 跨度将仅覆盖标签和输入,因此,如果我理解正确,您希望即使在用户单击标签时,也能在输入上设置焦点,这可以通过如下方式实现:

<form>
    <span>
       <input name="content" id="content" type="text">
       <label for="content">Content</label>
    </span>
</form>

在回答您的实际问题之前:有一种方法可以实现您想要做的事情,它甚至不需要任何JavaScript

如果将输入字段包装在标签标记中,单击标签将自动为字段提供焦点

<form>
    <label>
        Content
        <input id="content" name="content" type="text">
    </label>
</form>

在回答您的实际问题之前:有一种方法可以实现您想要做的事情,它甚至不需要任何JavaScript

如果将输入字段包装在标签标记中,单击标签将自动为字段提供焦点

<form>
    <label>
        Content
        <input id="content" name="content" type="text">
    </label>
</form>

我看到幸运的Soni打败了我,几乎完全一样。不过,我将保留我的答案,因为它显示了一种不同的方法:使用作为的包装器,而不是使用for属性。最初我使用标签标签包装输入,但在同一标签中包含select和输入时遇到了问题。当我点击输入时,select会窃取焦点。我将继续使用标签作为输入的包装,尽管我可以。我看到幸运的Soni击败了我,几乎完全一样。不过,我将保留我的答案,因为它显示了一种不同的方法:使用作为的包装器,而不是使用for属性。最初我使用标签标签包装输入,但在同一标签中包含select和输入时遇到了问题。当我点击输入时,select会窃取焦点。尽管如此,我仍将继续使用标签作为输入的包装。