2016-08-16 135 views
-1

我需要选择单击元素的第一个孩子,并且我的点击监听器必须绑定到“test”类。我怎样才能做到这一点?jquery按类选择第一个孩子

<span class="test">click<input type="text" value="1"></span> 
<span class="test">click<input type="text" value="2"></span> 
<span class="test">click<input type="text" value="3"></span> 
<span class="test">click<input type="text" value="4"></span> 

我正在尝试这个,但它总是返回1

$(".test").click(function(){ 
    $test = $(".test").children("input[type='text']:first").val(); 
    alert($test); 
}); 

这里的jsfiddle演示该问题 https://jsfiddle.net/6zudq9wy/

回答

3

你引用的点击功能中的所有test类元素,所以jQuery将选择第一个和输出它的第一批孩子。相反,参考this

$(".test").click(function(){ 
    $test = $(this).children("input[type='text']:first").val(); 
    alert($test); 
}); 
+2

小提示:如果您使用jQuery,** ** $变量名称标志一般使用对于jQuery对象,不是它的值或任何其他类型。 – jacqbus

3

你的意思是这样的:

$(".test").click(function(){ 
 
    alert ($(this).children().eq(0).val()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<span class="test">click<input type="text" value="1"></span> 
 
    <span class="test">click<input type="text" value="2"></span> 
 
    <span class="test">click<input type="text" value="3"></span> 
 
    <span class="test">click<input type="text" value="4"></span>

相关问题