❶ jQuery鏈式操作如何實現以及為什麼要用鏈式操作
鏈式操作就是分步驟地對jQuery對象實現各種操作,舉個栗子:
$("#Test").css('color','red').show(200).removeClass('style');
上面的例子就是鏈式操作,在一行代碼里,對id為Test的對象進行了三項操作:先設置其字體顏色為紅色,再顯示對象,最後移除對象的「style」這個樣式。再炒個板栗:
$("#Test").addClass('style').find("div").eq(0).fadeOut(200);
上面的例子意為:先為id為Test的對象添加"style"這個樣式,再找尋其下的第一個div標簽,並使其淡出。
通過上面的兩個例子不難看出鏈式操作就是圍繞一個jQuery對象進行的,很簡單吧?
為什麼要用鏈式操作呢?原因有兩個:
代碼更精簡。鏈式操作能大大精簡代碼量,多項操作一行代碼一氣呵成,搞定;
優化性能。使用鏈式操作,所有操作代碼共享一個jQuery對象,省去了逐步查詢DOM元素的性能損耗。
❷ 請問鏈式編程是什麼意思啊
鏈式編程 是將多個操作(多行代碼)通過點號"."鏈接在一起成為一句代碼。 鏈式代碼通常要求操作有返回值, 但對於很多操作大都是void型,什麼也不返回,這樣就很難鏈起來了, 當然也有解決辦法,可能不太優雅。 鏈式編程的新思想在jQuery中已流行使用
希望採納
❸ jquery選擇器$("...")返回的是數組,為什麼還能繼續練式操作$("...").方法
1、jquery選擇器$('selector')返回的不是數組,而是封裝好的jquery對象。但這個對象有一個特別的地方,就是查詢到的節點被以下標為屬性,添加到了jquery對象上,所以它看起來像數組,因為它存在一些屬性是數字;
2、jquery對象有哪些屬性和方法?
我們可以理解,$('selector')返回了一個對象obj,obj[0]....obj[i]總是返回查詢到的第i個節點。除此之外,jquery對象還被通過prototype添加了一些方法,即:
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,也就是返回了調用者自身,所以可以鏈式調用。
❹ JQuery的鏈式編程,隱式迭代是啥意思
鏈式編程,隱式迭代是jQuery的一個特性,它支持以鏈條的形式,不用顯示的迭代多層數據。
舉個列子:
//普通做法是這樣的
obj.name
=
'小明';
obj.age
=
155;
//鏈式編程是這樣的。
obj.name('小明').age(15);