經過問題看本質:
舉例:
js的寫法:document.getElementById('save').disabled=true;
在jquery中我是這樣寫的javascript
$("#save").disabled = true; //沒有效果
分析:
其實由於$("#save")出來的實際上是jQuery對象,而不是普通DOM對象
解決方法:
1)用JQ寫法html
$("#save").attr("disabled","true");
2)轉成DOM寫法java
$("#save")[0].disabled=true; //固然,$("#save")[0]也能夠寫成$("#save").get(0)。他返回的也是DOM元素。 $("#save").eq(0)//獲得的仍是jq對象,$(dom對象)就能獲得一個jq對象。
文檔對象模型簡稱DOM,是W3C組織推薦的處理可擴展置標語言的標準編程接口。jquery
1)概述
jQuery對象實際上是一個JavaScript的數組,這個數組對象包含125個方法和4個屬性
4個屬性分別是:編程
jquery對象就是經過jQuery包裝DOM對象後產生的對象。jQuery對象是jQuery獨有的,
其可使用jQuery裏的方法,可是不能使用DOM的方法;反過來Dom對象也不能使用
jquery的方法。
2)jQuery對象和js對象區別api
3)jQuery對象和js對象之間的相互轉換數組
var doc2=$("#idDoc2")[0]; //轉換jQuery對象爲DOM對象 doc2.innerHTML="這是jQuery的第一個DOM對象" //使用jQuery對象自己提供的get函數來返回指定集合位置的DOM對象 var doc2=$("#idDoc2").get(0); doc2.innerHTML="這是jQuery的第二個DOM對象"
DOM對象,便是咱們用傳統的方法(javascript)得到的對象,jQuery對象便是用
jQuery類庫的選擇器得到的對象。瀏覽器
var domObj = document.getElementById("id"); //DOM對象 var $obj = $("#id"); //jQuery對象;
jQuery對象就是經過jQuery包裝DOM對象後產生的對象,它是jQuery獨有的。
若是一個對象是jQuery對象,那麼就可使用jQuery裏的方法。框架
$("#foo").html(); //獲取id爲foo的元素內的html代碼,html()是jQuery特有的方法
等同於js中:dom
document.getElementById("foo").innerHTML;
注意:在jQuery對象中沒法使用DOM對象的任何方法。
例如:
$("#id").innerHTML 和$("#id").checked之類的寫法都是錯誤的
能夠用
$("#id").html()和$("#id").attr ("checked")之類的 jQuery方法來代替。
一樣,DOM對象也不能使用jQuery方法。學習jQuery開始就應當樹立正確的觀念,
分清jQuery對象和DOM對象之間的區別,以後學習 jQuery就會輕鬆不少的。
jquery提供了兩種方法將一個jquery對象轉換成一個dom對象,即[index]和get(index)。
可能有人會以爲奇怪,怎麼是用下標呢,沒錯,jquery對象就是一個數組對象。
舉例:
var $cr=$("#cr"); //jquery對象 var cr = $cr[0]; //dom對象 也可寫成 var cr=$cr.get(0); alert(cr.checked); //檢測這個checkbox是否給選中
對於一個dom對象,只須要用$()把dom對象包裝起來,就能夠得到一個jquery對象了,
方法爲$(dom對象);
舉例:
var cr=document.getElementById("cr"); //dom對象 var $cr = $(cr); //轉換成jquery對象
轉換後能夠任意使用jquery中的方法了。
dom對象才能使用dom中的方法,jquery對象不可使用dom中的方法,但 jquery對象提供
了一套更加完善的工具用於操做dom。
平時用到的jquery對象都是經過$()函數製造出來的,$()函數就是一個jquery對象的製造工廠。
注意:
若是獲取的對象是 jquery對象,那麼在變量前面加上$,這樣方便容易識別出哪些是jquery對象。
舉例:
var $variable = jquery對象;
若是獲取的是dom對象,則定義以下:
var variable = dom對象