今天做毕设项目用checkbox模拟radio功能遇到一个问题,用jquery对象操作无法实现radio功能,而用Dom对象才可以,其中内部机理未知。
1.先上html的一些代码:
<input class="J_filter_option" checked="checked" type="checkbox" value="" data-cablevel="经济舱" data-
field="Classes" name="filter_Classes" />
<input class="J_filter_option" type="checkbox" value="CF" data-cablevel="公务/头等舱" data-
field="Classes" name="filter_Classes" />
注意两个黑体加粗的部分就是checkbox
2.重点来了,对应的js脚本,注意注释。
$('input[name=filter_Classes]').bind('click',function(){
//利用Dom对象操作
for(var i=0;i<$('input[name=filter_Classes]').length;i++){
$('input[name=filter_Classes]').get(i).checked=false;
}
$(this).get(0).checked=true;
//利用jquery对象操作 无效
$('input[name=filter_Classes]').each(function(){
$(this).removeAttr('checked');
});
$(this).attr('checked','checked');
});
这是我写的模拟radio功能的代码,只能用dom对象操作才有效果。
希望把我遇到的坑跟大家说一下,以免误入歧途。