亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jquery選擇器$("...")返回的是數組,為什么還能繼續練式操作$("...").方法 ?

jquery選擇器$("...")返回的是數組,為什么還能繼續練式操作$("...").方法 ?

海綿寶寶撒 2019-05-11 07:07:59
jquery選擇器$("...")返回的是數組,為什么還能繼續練式操作$("...").方法 ?
查看完整描述

2 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

1、jquery選擇器$('selector')返回的不是數組,而是封裝好的jquery對象。但這個對象有一個特別的地方,就是查詢到的節點被以下標為屬性,添加到了jquery對象上,所以它看起來像數組,因為它存在一些屬性是數字;

2、jquery對象有哪些屬性和方法?

我們可以理解,$('selector')返回了一個對象obj,obj[0]....obj[i]總是返回查詢到的第i個節點。除此之外,jquery對象還被通過prototype添加了一些方法,即:

1

2

3

4

5

jQuery.prototype.each = function(){}

jQuery.prototype.hasClass = function(){}

jQuery.prototype.hide = function(){}

jQuery.prototype.css = function(){}

jQuery.prototype.attr = function(){}

等等。這樣的話,$('selector')返回的對象就可以調用這些方法,比如obj.attr('name')、obj.css('color', 'red')。

3、jquery方法如何處理多個節點?

實際上,以上諸如hide、css、attr等方法,在jquery內部都是通過循環來處理各個節點的。但是,如果是要獲取節點屬性,比如obj.attr('name'),顯然這個只能返回一個字符串,所以類似的方法都是獲取節點集合中的第一個節點的屬性。也就是說,雖然返回的節點很多,但只有第一個會被處理。

4、為什么jquery可以鏈式調用?

在jquery中,很多同名的方法通過參數個數的不同實現不同的功能,比如css方法,如果傳一個參數則表示獲取css屬性;如果傳兩個參數,則表示給節點添加某個屬性,并賦值為第二個參數。attr、width等也是這樣的處理。對于方法的返回值,除了獲取屬性值、獲取css值等需要返回實際值的方法外,當css方法、attr方法表示為為節點添加屬性、css樣式時,是不需要返回值的,但jquery讓這些方法返回了this,也就是返回了調用者自身,所以可以鏈式調用。


 




查看完整回答
反對 回復 2019-05-14
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

//這就是js的面向對象
//定義一個類 T 如下
function TT(){
var fun=function(){
alert("this is TT fun!");
}
}
//再定義tt
var tt = new TT();
//調用 fun
tt.fun();



查看完整回答
反對 回復 2019-05-14
  • 2 回答
  • 0 關注
  • 371 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號