所以我得到的按钮如下:
var checkedReportFilterButton = $('input[name=reportfilter]:checked', '#reportChartForm');
....
if (checkedReportFilterButton.val() ....
稍后,我可以轻松地附加更改处理程序,如下所示:
reportFilterButtons
在这个处理程序内部,我需要获取当前选中按钮的值,所以我这样做:
checkedReportFilterButton
reportFilterButtons
和{{1}}选择器似乎多余。有没有办法通过对{{1}}起作用而不进行第二次选择来获得检查/值?
答案 0 :(得分:2)
您可以使用$.filter
查找已选中的内容:
reportFilterButtons.filter(':checked').val()
答案 1 :(得分:1)
jQuery事件侦听器处理程序this
属性指向作为事件目标的元素。这意味着您不必再次找到它。只需包装一个jQuery对象$(this),你就可以去了(小提琴demo)。
代码:
<div id="reportChartForm">
<input type="radio" name="reportfilter" value="1">
<label>Radio 1</label>
<input type="radio" name="reportfilter" value="2">
<label>Radio 2</label>
<input type="radio" name="reportfilter" value="3">
<label>Radio 3</label>
</div>
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);
}