1.jquery中的index方法和eq方法
index()方法:index()獲取的索引值是相對同兄弟元素,即同乙個父元素,,所以首先要確認一下這個元素的兄弟是誰,例如:
當遇到以上的情況很容易就覺得要在img元素上繫結事件,不行,因為img的兄弟元素其實只有他自己,所以要在li上面繫結,這樣子繫結的每一次的index()才都不同。所有遇到這種情況,繫結img的父元素li,然後再分別查詢相應的img元素
eq()方法:eq(index)選擇器只匹配乙個元素,並且是所有匹配到的元素中的第index + 1
個元素(索引index
從0開始算起);例如:
$("img").eq(2)*****>>指向的是img3這個元素
index()方法和eq()方法的區別,
index()方法是相對同乙個父元素的兄弟元素,而eq()選擇所有匹配到的元素,而:nth-child(n)選擇器也是相對於同乙個父元素!!!
2、事件委託
具體來說,事件委託就是事件目標自身不處理事件,而是把處理任務委託給其父元素或者祖先元素,甚至根元素(document)。當要為dom中的很多元素繫結相同事件或者要為dom中尚不存在的元素繫結事件時,使用事件委託!!!
當html()中的元素是動態新增時,需要注意的是,如果這時候要呼叫元素的點選事件時,直接查詢該元素進行點選元素事件繫結,這時候點選事件會失效,解決方法有兩種
第一種直接在動態html裡面呼叫click()事件,並傳this。
第二種就是事件委託通過父級來查詢相應的點選元素,新版本的事件委託統一使用on()來進行事件繫結跟委託
示例:$("ancestor").on("click","selector"[,data ],handler );
// 這裡的選擇器selector用於指定可以觸發事件的元素
// 這裡的選擇器ancestor應是selector的祖輩元素,selector觸發的事件可以被其祖輩元素在事件流中捕獲,從而以"**"的形式觸發事件。
3、jquery.extend和jquery.fn.extend的區別
第一種:jquery.extend,首先我們把jquery當做人類,jquery.extend(),是擴充套件的jquery這個類。比如人類會吃飯睡覺,現在用這個擴充套件方法給人類增加乙個會唱歌的技能。
jquery可以用$符號代替,$.liu();這樣就能列印出來」liu「這個字串,這說明.liu()變成了jquery這個類本身的方法(object)。但是,這個能力啊,只有代表全人類的 jquery 這個類本身,才能用啊。像$("div").liu()就會用不了報錯!!
jquery.extend的兩種寫法如下!!
第二種:jquery.fn.extend()
jquery.fn.extend拓展的是jquery物件(原型的)的方法啊!物件是啥?就是類的例項化嘛,例如$("#abc") 這個玩意就是乙個例項化的jquery物件
你要是這麼用$.xyz();是會出錯誤!!!。
區別
jquery.extend()這個方法,主要是用來拓展個全域性函式啦,例如$.ajax()這種,要不就是拓展個選擇器啦,例如$.fn.each(),當選擇器用。
大部分外掛程式都是用jquery.fn.extend()。
4、$().each()和$.each()的區別
在jq中經常用這兩個方法來進行陣列跟物件的遍歷
第乙個:$().each 在dom處理上面用的較多。如果頁面有多個input標籤型別為checkbox,對於這時用$().each來處理多個checkbook。例子如下:
$(「input[name=』ch』]」).each(function(i)第二個:遍歷乙個陣列或者物件通常用$.each()來處理 例如:})**函式是可以傳遞引數,i就為遍歷的索引。
$.each([,],function(i,n));引數i為遍歷索引值,n為當前的遍歷物件.
var arr1 = [ "
one", "
two", "
three
", "
four
", "
five"];
$.each(arr1, function());
輸出:one two three four five
var arr2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9
]]$.each(arr2, function(i, item));
輸出:147
var obj = ;
$.each(obj, function(key, val) );
輸出:123
45
JAVA知識鞏固
執行緒池 1 執行緒是稀缺資源,使用執行緒池可以減少建立和銷毀執行緒的次數,每個工作執行緒都可以重複使用。2 可以根據系統的承受能力,調整執行緒池中工作執行緒的數量,防止因為消耗過多記憶體導致伺服器崩潰。執行緒池的實現原理 提交乙個任務到執行緒池中,執行緒池的處理流程如下 1 判斷執行緒池裡的核心執...
知識鞏固1
1.什麼是軟體測試 根據側重點的不同,主要有三種觀點 a.軟體測試就是為了發現錯誤而執行程式的過程 b.使用人工或工具測試某個系統的過程,其目的在於檢驗它是否滿足需求的規定或是弄清預期結果與實際結果之間的差別 c.軟體測試是一種重要的軟體質量保證活動 2.什麼是白盒測試?白盒測試又叫結構測試,邏輯驅...
Android知識鞏固 Binder
乙個程序空間分為 使用者空間 核心空間 kernel 即把程序內 使用者 核心 隔離開來 程序內 使用者 與 核心 進行互動 稱為系統呼叫 程序隔離 程序隔離是為保護作業系統中程序互不干擾而設計的一組不同硬體和軟體的技術。這個技術是為了避免程序a寫入程序b的情況發生。程序的隔離實現,使用了虛擬位址空...