作者NullLife (政) (哀莫大於心死)
看板Ajax
标题[问题] 研究jq的each时产生的一些疑问
时间Fri Jan 30 01:18:12 2015
其实是在研究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://webptt.com/cn.aspx?n=bbs/Ajax/M.1422551896.A.DE0.html
1F:推 Ammenze: target是html element,用$包起来是jquery物件,两种取id 01/30 09:57
2F:→ Ammenze: 方式本来就不同 01/30 09:58
3F:推 onininon: 推楼上 01/30 11:49
4F:→ NullLife: 了解,谢谢。那请问q3&q4呢? 01/30 21:06
5F:→ mrbigmouth: q3那个target是html element啊 没有attr这个method 01/30 21:17
6F:→ mrbigmouth: 当然就exception了 01/30 21:17
7F:→ mrbigmouth: q4能整合在一起独立呼叫最快 不然没多少差别 01/30 21:18
8F:→ mrbigmouth: method chain这种作法在效率上也许快一些些 但可乎略 01/30 21:18
9F:→ mrbigmouth: 啊 前提是你像q4那样已经先把jq物件存成变数了 01/30 21:19
10F:→ mrbigmouth: 如果你是$("div").append("xx")这样...那串接呼叫就较 01/30 21:19
11F:→ mrbigmouth: 快 因为後面的串接呼叫都省掉了找div的功夫 01/30 21:20
12F:→ NullLife: 对吼,真是点醒我了 感谢楼上大大~ 02/01 15:04