Jquery:使用公共类和change()获取输入复选框的值

时间:2012-01-12 16:38:22

标签: jquery

我有一个值表,需要获取行的复选框的值。发生的事情是: 如果我有一个包含4行数据的表并选择顶行,则会为具有相同类名的表中的每个相应行触发绑定事件。我只希望它触发一次并返回已更改的行复选框的值(需要选中和未选中的触发器)。任何帮助表示赞赏。

http://jsfiddle.net/radi8/MgFuu/5/看到我的小提琴。

我正在使用以下课程(使用Rob W和Richard D的建议修复,谢谢你们!):

 var RequiredField = {
     init: function() {
         // bind a control structure around the PSN selection table
         var psn = $(".psnselect");
         //for (var i = 0, ii = psn.length; i < ii; i++) {
         //    $(psn).change(RequiredField.psnSelect);
         //}
         psn.change(RequiredField.psnSelect);

     },
     psnSelect: function(event) {
         var evtName = event.currentTarget.name;
         var checked = event.currentTarget.checked;
         var val = event.currentTarget.value;
         alert('PSN Selection: ' + evtName);
     }
 };
 RequiredField.init();

2 个答案:

答案 0 :(得分:1)

删除for循环。 jQuery自动将事件附加到与选择器匹配的所有元素。 psn已经是jQuery对象,因此$包装器也可以省略:

psn.change(RequiredField.psnSelect);

修正了演示:http://jsfiddle.net/MgFuu/6/

<小时/> 如果要选择jQuery集合的 n 元素,可以使用以下任一方法:

var n = 0;    // The first element (index 0)
psn.eq(n);    // = jQuery wrapped first element
psn.get(0);   // = DOM element
psn[0];       // = psn.get(0) = DOM element

答案 1 :(得分:0)

无需使用for循环。

init: function() {
    $(".psnselect").change(RequiredField.psnSelect);       
},

该事件将自动绑定到与选择器匹配的所有元素

http://jsfiddle.net/infernalbadger/MgFuu/7/