Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 使用jQuery在span之前设置输入焦点_Javascript_Jquery - Fatal编程技术网

Javascript 使用jQuery在span之前设置输入焦点

Javascript 使用jQuery在span之前设置输入焦点,javascript,jquery,Javascript,Jquery,我有以下引导html: <div class="input-group"> <input id="dbTest" class="input-sm input-s datepicker-input form-control dirty" type="text" data-bind="datepicker:DOB" data-date-format="dd-mm-yyyy

我有以下引导html:

<div class="input-group">                                                    
    <input id="dbTest" class="input-sm input-s datepicker-input form-control dirty" type="text" data-bind="datepicker:DOB" data-date-format="dd-mm-yyyy" readonly="readonly">                                                   
    <span class="input-group-addon" id="dp3"><i class="fa fa-calendar"></i></span>
</div> 
不过,我想实现的是为我创建的任何其他日期选择器的加载项按钮创建全局函数的能力,这样我就不必为我创建的每个日期选择器添加ID和函数。例如,我想添加一个名为datepicker插件的类:

<span class="input-group-addon datepicker-addon" id="dp3"><i class="fa fa-calendar"></i></span>

关于如何获取相关输入元素,有什么想法吗?

我不确定是否完全理解,但如果您试图在没有id等的情况下专注于输入,请给出您的标记

$(".datepicker-addon").each(function() {
    $(this).parent().find('input').Focus();
})
注意:正如有人提到的,在你的问题中,你的意思可能是
单击()
,而不是
每个()
,在这种情况下

$(".datepicker-addon").on('click', function() {
    $(this).parent().find('input').Focus();
})

这就是你想要的

如果span和input相邻,我将使用jquery.prev()函数而不是parent-then-find。

.prev立即在当前元素之前查看html元素

.prev vs.parrent仅在html结构上起作用。输入是否总是在日期选择器之前?datepicker的父元素中是否始终只有一个输入
从局外人的角度来看,前者似乎比后者更有约束力

假设您的输入标记:

  • 始终具有类“datepicker输入”
  • 始终位于带有附加按钮的span之前
您可以使用以下代码:

$('.input-group-addon').click(function(){
    $(this).prev('.datepicker-input').focus();
});

您如何定义
相关输入是什么?也就是说,换句话说,我们可以帮助您编写代码?我刚刚添加到OP发布的内容中,当然这段代码将只关注集合中的最后一个元素。如果适用,prev()是def更好的选项吗
$(".datepicker-addon").on('click', function() {
    $(this).parent().find('input').Focus();
})
$(".datepicker-addon").each(function() {
   $(this).prev().Focus();
})
$('.input-group-addon').click(function(){
    $(this).prev('.datepicker-input').focus();
});