js的寫法:document.getElementById('save').disabled=true;
在jquery中我是這樣寫的$("#save").disabled = true; 爲何沒效果呢
javascript
這個是典型的問題,其實由於$("#save")出來的實際上是jQuery對象,而不是普通DOM對象
解決方法有2:
1,用JQ寫法,$("#save").attr("disabled","true");
2,轉成DOM寫法$("#save")[0].disabled=true;
固然,$("#save")[0]也能夠寫成$("#save").get(0)。他返回的也是DOM元素
$("#save").eq(0)獲得的仍是jq對象 html
若是給定表示 DOM 元素集合的 jQuery 對象,.eq() 方法會用集合中的一個元素構造一個新的 jQuery 對象。java
$(dom對象)就能獲得一個jq對象jquery
例如:數組
$("#color").html();//獲取id爲color的元素內的html代碼,html()是jQuery特有的方法;
它等同於:
document.getElementById("color").innerHTML;dom
DOM對象就是javascript固有的一些對象。DOM對象能使用javascript固有的方法,可是不能使用jQuery裏面的方法。ide
例如$("#id").innerHTML 和$("#id").checked之類的寫法都是錯誤的,能夠用$("#id").html()和$("#id").attr("checked")之類的 jQuery方法來代替。spa
var domObj =document.getElementById("id"); //DOM對象
var $obj =$("#id"); //jQuery對象;htm
jQuery對象和DOM對象的相互轉換對象
jQuery對象轉換成DOM對象
jquery提供了兩種方法將一個jquery對象轉換成一個dom對象,即[index]和get(index)。可能有人會以爲奇怪,怎麼是用下標呢,沒錯,jquery對象就是一個數組對象.
下面代碼將演示一個jquery對象轉換成dom對象,再使用dom對象的方法
代碼以下:
var$cr=$("#cr"); //jquery對象
var cr = $cr[0]; //dom對象 也可寫成 var cr=$cr.get(0);
alert(cr.checked); //檢測這個checkbox是否給選中
dom對象轉換成jquery對象
對於一個dom對象,只須要用$()把dom對象包裝起來,就能夠得到一個jquery對象了,方法爲$(dom對象);
複製代碼 代碼以下:
varcr=document.getElementById("cr"); //dom對象
var $cr = $(cr); //轉換成jquery對象
轉換後能夠任意使用jquery中的方法