2015-02-10 95 views
2

我必须得到div中的第一个输入(class = form-group)才能完成所需的第一个输入。选择器 - 如何选择div中的第一个输入?

<div class="form-group clearfix"> 
    <div class="col-md-2 col-md-offset-2"> 
     <div class="form-text-field first-name"> 
      <input type="text" id="firstName1" class="signup-input firstName" name="first[1]" placeholder=""> 
     </div> 
    </div> 
    <div class="col-md-2"> 
     <div class="form-text-field last-name"> 
      <input type="text" id="lastName1" class="signup-input lastName" name="last[1]" placeholder="optional"> 
     </div> 
    </div> 
    <div class="col-md-4"> 
     <div class="form-text-field email"> 
      <input type="text" data-index="1" id="inputMail1" class="signup-input text-value email" name="email[1]" placeholder="e.g. [email protected]"/> 
      <span class="common-sprite disNone sign-up-cross first clone"></span> 
     </div> 
    </div> 
</div> 

如何在点击第三个元素(电子邮件)时选择第一个输入(firstName)?

+0

你尝试过什么吗? – 2015-02-10 14:57:54

+1

_“如何在单击第三个元素(email)时选择第一个输入(firstName)?”_单击第三个元素(email)时,您想要对第一个输入做什么? – j08691 2015-02-10 15:00:05

+0

“点击第三个元素(email)”..你在'div'和'input'上有'.email' ..你指的是哪一个元素? – 2015-02-10 15:06:37

回答

0

与jQuery

$('#inputMail1').click(function(){ 
$("input").first().focus(); 
}); 
+0

使用id =“firstName1”?不确定没有输入berfore此代码和不完整的答案没有触发点击 – 2015-02-10 14:58:50

+0

$('#inputMail1')。click(function(){ $(“input”).first()。focus(); }); – 2015-02-10 14:59:47

+0

我有像上面那样的多个div ......它应该如何知道在相关div中选择第一个输入? – 2015-02-10 15:04:28

3

如果您想进一步下降缩小选择性能方面的原因,你可以使用以下命令:

$('div.form-group > div:first > div > input:first') 

这将成为:

$(function() { 
 
    $('#inputMail1 ').click(function(){ 
 
     $('div.form-group > div:first > div > input:first').focus(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="form-group clearfix"> 
 
    <div class="col-md-2 col-md-offset-2"> 
 
     <div class="form-text-field first-name"> 
 
      <input type="text" id="firstName1" class="signup-input firstName" name="first[1]" placeholder=""> 
 
     </div> 
 
    </div> 
 
    <div class="col-md-2"> 
 
     <div class="form-text-field last-name"> 
 
      <input type="text" id="lastName1" class="signup-input lastName" name="last[1]" placeholder="optional"> 
 
     </div> 
 
    </div> 
 
    <div class="col-md-4"> 
 
     <div class="form-text-field email"> 
 
      <input type="text" data-index="1" id="inputMail1" class="signup-input text-value email" name="email[1]" placeholder="e.g. [email protected]"/> 
 
      <span class="common-sprite disNone sign-up-cross first clone"></span> 
 
     </div> 
 
    </div> 
 
</div>

+0

这是错的,他希望选择此clearfix的第一名不是第一页 – 2015-02-10 15:03:44

+0

@BenjaminPoignant真的,我认为这是正确的。 – hutchonoid 2015-02-10 15:07:18

+0

@hutchonoid,'$('div.form-group> div:first> div:first> input:first')'?? – 2015-02-10 15:11:16

0

如何在点击第三个元素(电子邮件)时选择第一个输入(firstName)?

如果你想获得第三.form-text-field元素,当点击第一input元素:

$('.form-group .form-text-field').eq(2).on('click', function() { 
    $(this).closest('.form-group').find('.form-text-field:first input:first'); 
}); 

Example Here


或者你可以通过id而不是.eq(2)选择元素:

$('#inputMail1').on('click', function() { 
    $(this).closest('.form-group').find('.form-text-field:first input:first'); 
}); 

Example Here

0

你中央社使用它

$('.signup-input.email').on('click',function(){<-trigger on click 

    $(this).closest('.clearfix').find('.firstName'); <- get firstname of this clearfix 

}); 
1

看到代码段。

closest =搜索第一个加工父项。

siblings =搜索兄弟元素。

first =获取第一个匹配元素。

find =获取第一个匹配的子元素。

val =获取输入元素的值。

(function($) { 
 

 
    $('body').on('click', '.email', function() { 
 

 
    var firstname = $(this).closest('.col-md-4').siblings().first().find('.firstName').val(); 
 

 
    alert(firstname); 
 

 
    }); 
 

 
})(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="form-group clearfix"> 
 
    <div class="col-md-2 col-md-offset-2"> 
 
    <div class="form-text-field first-name"> 
 
     <input type="text" id="firstName1" class="signup-input firstName" name="first[1]" placeholder=""> 
 
    </div> 
 
    </div> 
 
    <div class="col-md-2"> 
 
    <div class="form-text-field last-name"> 
 
     <input type="text" id="lastName1" class="signup-input lastName" name="last[1]" placeholder="optional"> 
 
    </div> 
 
    </div> 
 
    <div class="col-md-4"> 
 
    <div class="form-text-field email"> 
 
     <input type="text" data-index="1" id="inputMail1" class="signup-input text-value email" name="email[1]" placeholder="e.g. [email protected]" /> 
 
     <span class="common-sprite disNone sign-up-cross first clone"></span> 
 
    </div> 
 
    </div> 
 
</div>

问候提摩太

+0

我喜欢你给的jQuery方法的参考..但我仍然喜欢CssSelector的解决方案..这是..'更好'(upvoted)答案。 – 2015-02-10 15:14:29

0
document.getElementById('inputMail1').parentNode.parentNode.onclick = function(){ 
    document.getElementById('firstName1').focus(); 
}; 

Somethink这样吗?

+0

注意:这不使用或需要jQuery库..(也,我会使用'addEventListener')..和'querySelector' – 2015-02-10 15:17:19

+0

如果只有一个处理程序,没有必要使用addEventListener/attachEvent,但如果有不止一个处理者,你是绝对正确的! – 2015-02-10 15:21:27

+0

你不知道是否只有1个处理程序..用户代理可能使用扩展addEventListeners输入自动完成..或什么的..这是概念无论如何.. – 2015-02-10 15:31:23