我需要选择clicked元素的第一个子元素,我的点击监听器必须绑定到“test”类。我怎么能这样做?
<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/
答案 0 :(得分:3)
您正在引用click函数中的所有test
类元素,因此jQuery将选择第一个并输出其&#39;第一个孩子。相反,请参考this
:
$(".test").click(function(){
$test = $(this).children("input[type='text']:first").val();
alert($test);
});
答案 1 :(得分: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>