jquery同名class的.live('click',function(){});问题
本帖最后由 qq37431300 于 2013-10-14 22:30:58 编辑
html代码:
<div class="myfrom">
<div class="myInput">
<input class="proid" type="text" name="goods_id1" value="">
</div>
<input class="myBtn" type="submit" value="提交">
</div>
<div class="myfrom">
<div class="myInput">
<input class="proid" type="text" name="goods_id2" value="">
</div>
<input class="myBtn" type="submit" value="提交">
</div>
jQuery代码:
$(".myBtn").live('click',function(){
var goods_id = $(this).parents(".myInput").find('#proid2').val();
alert(goods_id);
});
我有2个同名的class="
myBtn" ,用jquery怎样才能做到我鼠标点击哪个时就能提交它上面的 name="goods_id" 的value值过去呢?
我试过用
var goods_id = $(this).parents(".myInput").find('#proid2').val();
alert(goods_id);
这样都获取不到
name="goods_id2" value=""
提交过去的值。
好像它只从页面的第一个 class="
myBtn" 找一次,不会一直跑完整个页面。
------解决方案--------------------var goods_id = $(this).parents(".myfrom").find('.proid').val();
------解决方案--------------------$(this).parents(".myInput").find('#proid2').val()里面find('#proid2')使用的是id选择器,而html里面没有一个元素的id是proid2,用错了选择器,应该是用类选择器,find('.proid')
应该这样写
var goods_id = $(this).parents(".myInput").find('.proid').val();
还可以这样写
var goods_id = $(this).prev().find('.proid').val();
减少DOM查找次数
------解决方案--------------------$(".myBtn").live('click',function(){
var goods_id = $(this).parents("
.myfrom").find('
.proid').val();
alert(goods_id);
});
parent选择错了,另外find用input.proid,不要用id号选择。
在线测试 http://jsfiddle.net/hPrgz/