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,也就是返回了調用者自身,所以可以鏈式調用。
- 2 回答
- 0 關注
- 371 瀏覽
添加回答
舉報