[問題] 研究jq的each時產生的一些疑問

看板Ajax作者 (政) (哀莫大於心死)時間9年前 (2015/01/30 01:18), 編輯推噓2(2010)
留言12則, 4人參與, 最新討論串1/1
其實是在研究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

01/30 09:57, , 1F
target是html element,用$包起來是jquery物件,兩種取id
01/30 09:57, 1F

01/30 09:58, , 2F
方式本來就不同
01/30 09:58, 2F

01/30 11:49, , 3F
推樓上
01/30 11:49, 3F

01/30 21:06, , 4F
了解,謝謝。那請問q3&q4呢?
01/30 21:06, 4F

01/30 21:17, , 5F
q3那個target是html element啊 沒有attr這個method
01/30 21:17, 5F

01/30 21:17, , 6F
當然就exception了
01/30 21:17, 6F

01/30 21:18, , 7F
q4能整合在一起獨立呼叫最快 不然沒多少差別
01/30 21:18, 7F

01/30 21:18, , 8F
method chain這種作法在效率上也許快一些些 但可乎略
01/30 21:18, 8F

01/30 21:19, , 9F
啊 前提是你像q4那樣已經先把jq物件存成變數了
01/30 21:19, 9F

01/30 21:19, , 10F
如果你是$("div").append("xx")這樣...那串接呼叫就較
01/30 21:19, 10F

01/30 21:20, , 11F
快 因為後面的串接呼叫都省掉了找div的功夫
01/30 21:20, 11F

02/01 15:04, , 12F
對吼,真是點醒我了 感謝樓上大大~
02/01 15:04, 12F
文章代碼(AID): #1KocjOtW (Ajax)