我有一个单选按钮列表,名称为“ ReportTypeId”。对于每个radio
按钮,我想在单击时显示一个警报及其值。
我写了下面的jQuery,它用名称为“ ReportTypeId”的列表获得了所有5个单选按钮:
$("[name='ReportTypeId']").toArray().forEach(function(reportTypeId){
reportTypeId.click(function(reportTypeId){
alert(reportTypeId.value);
});
});
当我设置一个断点并在加载时检查变量时,变量看起来像预期的那样。但是,当我在页面加载后单击单选按钮时,没有任何反应。我在上面的jQuery中做错了什么?
最佳答案
您应该使用this
将当前元素添加到.click()
的回调函数中。传递给函数的参数实际上是click事件对象。
$("[name='ReportTypeId']").toArray().forEach(function(reportTypeId){
reportTypeId.click(function(event){
alert(this.value);
});
});
您只需在jQuery集合上调用
.click()
即可大大简化代码。事件侦听器将自动附加到集合中的所有元素。$("[name='ReportTypeId']").click(function(event){
alert(this.value);
});