看板 Ajax 關於我們 聯絡資訊
其實是在研究jq plugin時發現的一些問題: html元件: <div id="target1" class="t"></div> <div id="target2" class="t"></div> script呼叫: $('.t').myMethod(); jq plugin: $.fn.myMethod = function() { return this.each(function(index, target) { var a = $(this).id; // q1.為什麼這裡取不到id,而下面的方式取的到id? var b = $(this).attr('id'); var c = target.id; // q2.這個target跟$(this)有什麼差別? // 不是都指我選到的div嗎? // var d = target.attr('id'); // q3.為什麼這裡會變成undefined exception? var div = $('<div/>'); div.append(index); div.append(', ' + a); // q4.獨立呼叫跟串接呼叫有什麼效率上的差別? div.append(', ' + b) .append(', ' + c) // .append(', ' + d) .append('<br/>'); $(this).append(div); }); }; 以上四點是我的疑問,懇請大大解惑<(_ _)> -- 我以為認真去做就能實現我的夢 以為寫首好歌走路就能抬起頭 以為騎摩托車旅行就能變英雄 黃玠 現在的我 失去了衝動 香格里拉 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.193.169 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1422551896.A.DE0.html
Ammenze: target是html element,用$包起來是jquery物件,兩種取id 01/30 09:57
Ammenze: 方式本來就不同 01/30 09:58
onininon: 推樓上 01/30 11:49
NullLife: 了解,謝謝。那請問q3&q4呢? 01/30 21:06
mrbigmouth: q3那個target是html element啊 沒有attr這個method 01/30 21:17
mrbigmouth: 當然就exception了 01/30 21:17
mrbigmouth: q4能整合在一起獨立呼叫最快 不然沒多少差別 01/30 21:18
mrbigmouth: method chain這種作法在效率上也許快一些些 但可乎略 01/30 21:18
mrbigmouth: 啊 前提是你像q4那樣已經先把jq物件存成變數了 01/30 21:19
mrbigmouth: 如果你是$("div").append("xx")這樣...那串接呼叫就較 01/30 21:19
mrbigmouth: 快 因為後面的串接呼叫都省掉了找div的功夫 01/30 21:20
NullLife: 對吼,真是點醒我了 感謝樓上大大~ 02/01 15:04