jQuery点击事件中如何获取对应class为inp的单个输入框的值
解决点击对应a标签获取内部输入框值的问题
嘿,问题出在你选择.inp元素的方式上!当前代码里$j('.inp').val()是全局查找所有class为inp的元素,而jQuery的val()方法对多个元素只会返回第一个匹配元素的值,所以不管你点哪个a标签,都会显示第一个输入框的内容。
要解决这个问题,你需要在点击事件里限定查找范围——只在当前被点击的a标签内部找.inp元素。具体来说,就是用$j(this)指代当前触发点击的a标签,然后用.find('.inp')定位到它内部的输入框,再取它的值。
修正后的完整代码如下:
<div id='cont-qty'></div> <a href="#" class="bottontest">aaa<input class="inp" value="1" /></a> <a href="#" class="bottontest">bbb<input class="inp" value="2" /></a> <a href="#" class="bottontest">ccc<input class="inp" value="3" /></a> <script> var $j = jQuery.noConflict(); $j(document).ready(function(){ $j("a.bottontest").click(function(){ // 只在当前点击的a标签内部查找.inp元素 $j("#cont-qty").html($j(this).find('.inp').val()); return false; }); }); </script>
另外,建议把选择器从$j("a")改成$j("a.bottontest"),这样可以避免页面上其他无关的a标签触发这个事件,逻辑更精准。
内容的提问来源于stack exchange,提问作者Gabriel91
相关产品推荐
相关产品推荐

