[问题] 研究jq的each时产生的一些疑问

楼主: NullLife (废材大叔有点累)   2015-01-30 01:18:12
其实是在研究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);
});
};
以上四点是我的疑问,恳请大大解惑<(_ _)>
作者: Ammenze (蓝天白云)   2015-01-30 09:57:00
target是html element,用$包起来是jquery物件,两种取id方式本来就不同
作者: onininon (万)   2015-01-30 11:49:00
推楼上
楼主: NullLife (废材大叔有点累)   2015-01-30 21:06:00
了解,谢谢。那请问q3&q4呢?
作者: mrbigmouth (大嘴先生)   2015-01-30 21:17:00
q3那个target是html element啊 没有attr这个method当然就exception了q4能整合在一起独立呼叫最快 不然没多少差别method chain这种作法在效率上也许快一些些 但可乎略啊 前提是你像q4那样已经先把jq物件存成变量了如果你是$("div").append("xx")这样...那串接呼叫就较快 因为后面的串接呼叫都省掉了找div的功夫
楼主: NullLife (废材大叔有点累)   2015-02-01 15:04:00
对吼,真是点醒我了 感谢楼上大大~

Links booklink

Contact Us: admin [ a t ] ucptt.com