jquery 表单元素查找

l       问题

在一个表单中,我需要把同一行中的任意两个元素的值累加,并把累加的值赋值到第三个元素。

 

l       技术

jquery 中的parent([expr]) , parents([expr]),

find([expr]),prev(),next()

l       分析

看到这个问题,就会想到,首先要得要被赋值元素的位置,以它的坐标为起点,查找另外两个元素,因为这三个元素在同一行,所以我们可以用jquery中的parent()parents()这两个方法,得到它的父元素:

parent():取得一个包含着所有匹配元素的唯一父元素的元素集合。

Parents():取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选。

得到父元素后,在父元素中用find()方法,得到想要的元素进行运算即可。

 

 

l      代码

jquery 代码:

方法1

$("input[name='name4']").each(function(){

  $(this).val(parseInt($(this).parent("td").prev().find("input").val())+parseInt($(this).parent("td").prev().prev().find("input").val())); 

}); //此方法,当表单中的元素发生位移时,就会出现问题。

 

方法2

$("input[name='name4']").each(function(){

$(this).val(parseInt($(this).parents("tr").find("input[name='name3']").val())+parseInt($(this).parents("tr").find("input[name='name2']").val()));

}); //此方法,当表单中的元素发生位移时,程序可正常运行。

 

页面代码:

<form>

    <table>

       <tr>

           <td><input type="text" name="name1" value="2"></td>

           <td><input type="text" name="name2" value="33"></td>

           <td><input type="text" name="name3" value="1"></td>

           <td><input type="text" name="name4" value=""></td>

           <td><span>123</span></td>

       </tr>

       <tr>

           <td><input type="text" name="name1" value="2"></td>

           <td><input type="text" name="name2" value="33"></td>

           <td><input type="text" name="name3" value="5"></td>

           <td><input type="text" name="name4" value=""></td>

           <td><span>123</span></td>

       </tr>

    </table>

   </form> 

l       总结

这个问题主要体现了parent([expr]) , parents([expr])的不同。后者会使程序的可靠性更高,所以程序中应尽量使用后者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值