jQuery中呼叫方法要注意的問題
阿新 • • 發佈:2019-01-22
在呼叫時要注意當前的物件是jQuery物件還是DOM物件,jQuery物件只能使用jQuery中的方法如:
$('p').html(),而不能使用$('p').innerHTML
DOM物件只能使用的DOM的方法如document.getElementById("p").innerHTML
但在jQuery中可以使用this關鍵字返回當前的DOM物件如:
$("input").each(function(){
alert(this.id);//用DOM的方式
alert($(this).attr("id"))//jQuery的方式
})
普通的dom物件一般可以通過$()轉換成jquery物件。
如:$(document.getElementById("msg"))則為jquery物件,可以使用jquery的方法。
由於jquery物件本身是一個集合(返回的物件為jquery物件(集合物件),不能直接呼叫dom定義的方法)。
所以如果jquery物件要轉換為dom物件 則必須取出其中的某一項,一般可通過索引取出。
如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]這些都是dom物件,
其中$(exp).get(0) 等效於$(exp)[0]。
可以使用dom中的方法,但不能再使用Jquery的方法。
還要注意的是
eq返回的是jquery物件,而get(n)和索引返回的是dom元素物件。
$("#msg").html();
$("#msg")[0].innerHTML;(經常新手會 $("#msg")[0].html() ,當然這是錯誤的寫法。)
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;
$('p').html(),而不能使用$('p').innerHTML
DOM物件只能使用的DOM的方法如document.getElementById("p").innerHTML
但在jQuery中可以使用this關鍵字返回當前的DOM物件如:
$("input").each(function(){
alert(this.id);//用DOM的方式
alert($(this).attr("id"))//jQuery的方式
})
普通的dom物件一般可以通過$()轉換成jquery物件。
如:$(document.getElementById("msg"))則為jquery物件,可以使用jquery的方法。
由於jquery物件本身是一個集合(返回的物件為jquery物件(集合物件),不能直接呼叫dom定義的方法)。
所以如果jquery物件要轉換為dom物件
如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]這些都是dom物件,
其中$(exp).get(0) 等效於$(exp)[0]。
可以使用dom中的方法,但不能再使用Jquery的方法。
還要注意的是
eq返回的是jquery物件,而get(n)和索引返回的是dom元素物件。
$("#msg").html();
$("#msg")[0].innerHTML;(經常新手會 $("#msg")[0].html() ,當然這是錯誤的寫法。)
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;