2012-01-12 55 views
2

我有一個值表的表,並需要獲取行的複選框的值。發生了什麼事情是: 如果我有一個包含4行數據的表並選擇最上面的一行,則綁定事件將針對表中每個對應行使用相同的類名稱觸發。我只希望它觸發一次並返回已更改行的複選框的值(需要同時觸發檢查和未檢查)。任何幫助表示讚賞。Jquery:使用公共類獲取輸入複選框的值並更改()

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

我使用下面的類(使用羅布W和理查德·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(); 

回答

1

取出for循環。 jQuery自動將事件附加到與選擇器匹配的所有元素。 psn已經是一個jQuery對象,所以$包裝也可以省略:

psn.change(RequiredField.psnSelect); 

固定演示:http://jsfiddle.net/MgFuu/6/


如果你想選擇一個jQuery集合的 ñ個元素,無論這些方法可以使用:

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