$('#checkbox').attr('checked') 返回ture和checked 的原因

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");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章