获取已选中单选按钮的值,而无需重新选择按钮

所以我得到一些按钮如下:

var reportFilterButtons = $('input[name=reportfilter]', '#reportChartForm'); 

稍后,这很容易让我附加一个更改处理程序,如下所示:

 reportFilterButtons.change(handlers.reportFilterButtonsChange); 

在这个处理程序里面我需要获取当前选中按钮的值,所以我这样做:

 var checkedReportFilterButton = $('input[name=reportfilter]:checked', '#reportChartForm'); .... if (checkedReportFilterButton.val() .... 

但是, reportFilterButtonscheckedReportFilterButton选择器似乎是多余的。 有没有办法通过使用reportFilterButtons而不进行第二次选择来获取checked / value?

您可以使用$.filter查找已选中的:

 reportFilterButtons.filter(':checked').val() 

一个jQuery事件侦听器处理程序, this属性指向作为事件目标的元素。 这意味着您不必再次找到它。 只需包装一个jQuery对象$(this),你就可以了(小提琴演示 )。

码:

 
var reportFilterButtons = $('input[name=reportfilter]', '#reportChartForm'); reportFilterButtons.change(reportFilterButtonsChange); function reportFilterButtonsChange() { var value = $(this).val(); // this is the reference to the element console.log(value); }