首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jquery同名class的.live('click'function(){});有关问题

2013-10-15 
jquery同名class的.live(ɼlick',function(){})问题本帖最后由 qq37431300 于 2013-10-14 22:3

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/

热点排行