jquery 1.6 版本 之前 調用 $('#checkbox').attr('checked') 會返回 true 或者 false 值
而 在 jquery 1.6 版本 之後 調用 $('#checkbox').attr('checked') 會返回 checked 而值不存在時會返回 undefined
在高版本後 jquery 把屬性分爲兩種 一直是屬性、另一種是特性。
它將“屬性”與“特性”做了區別,屬性指的是“name,id”等等,特性指的是“selectedIndex,
tagName, nodeName”等等。
JQ1.6之後,可以通過attr方法去獲得屬性,通過prop方法去獲得特性
$("#cb").attr("tagName");
//undefined
$("#cb").prop("tagName"); //INPUT
分享一段全選操作JS
jQuery.fn.extend({
selectAll : function(attrName,attrValue) {
//獲取jquery版本
var jquery_ver = $.fn.jquery;
var obj =$(this);
if(parseFloat(jquery_ver)>=1.6){
$(this).click(function() {
if($(obj).prop("checked")) {
$("input[type=checkbox][" + attrName + "='" + attrValue + "']").prop("checked","checked");
} else {
$("input[type=checkbox][" + attrName + "='" + attrValue + "']").prop("checked",null);
}
});
}else{
$(this).click(function() {
if($(obj).attr("checked")) {
$("input[type=checkbox][" + attrName + "='" + attrValue + "']").attr("checked",true);
} else {
$("input[type=checkbox][" + attrName + "='" + attrValue + "']").attr("checked",false);
}
});
}
//將被綁定的checkebox綁定檢查事件
$("input[type=checkbox][" + attrName + "='" + attrValue + "']").click(function () {
var allChecked = $("input:checked[" + attrName + "='" + attrValue + "']");
if(parseFloat(jquery_ver)>=1.6){
if ($(obj).prop("checked") === true ) {
$(obj).prop("checked",null);
}
if ( $("input:checkbox[" + attrName + "='" + attrValue + "']").length == allChecked.length ) {
$(obj).prop("checked","checked");
}
}else{
if ($(obj).attr("checked") === true ) {
$(obj).attr("checked",false);
}
if ( $("input:checkbox[" + attrName + "='" + attrValue + "']").length == allChecked.length ) {
$(obj).attr("checked",true);
}
}
});
}
});
調用方法$("#obj").selectAll("attr","attr");