设置一个复选框回显示
使用attr()添加checked属性
可是在回显的过程当中会使复选框出现混乱的状况有一些并无回显
若是给他添加一个checked的class就会致使复选框不可点击这种作法是不对的
须要用prop替代code
function updateCheckboxState(data, type) { var elType = type ? ('#' + type + '_') : '#'; for (var x in data) { if (data[x] == '1') { $(elType + x).prop('checked', true); // $(elType + x).addClass('checked'); } else { $(elType + x).prop('checked', false); // $(elType + x).removeClass('checked'); } } }
如今说一下为何须要用prop()替代呢
使用attr()点击 checkbox,结果都是 undefined
attr() prop()
二者分别是获取/设置 attributes 和 properties 的方法element
何时使用attr(),何时使用prop()?
根据官方的建议:具备 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其余的使用 attr()rem
attr() 里面,最关键的两行代码 elem.setAttribute( name, value + "" ); ret = elem.getAttribute( name );
很明显的看出来,使用的 DOM 的 API setAttribute() 和 getAttribute() 方法操做的属性元素节点。get
prop() 里面,最关键的两行代码 return ( elem[ name ] = value ); return elem[ name ]; 能够理解为 document.getElementById(el)[name] = value,这是转化成 element 的一个属性。 或者 $('elType + x').attr('value',true/false)