【发布时间】:2016-07-01 23:08:06
【问题描述】:
在我自己的 EACH 函数上创建 callback 时遇到问题。
我正在使用 OOP 的方式来完成它。
基本上,我创建了自己的模仿 JQUERY 习惯的 javascript 库。
检查这个动作:https://jsfiddle.net/6pk068ep/1/
<div class="parent">
<p class="child">child</p>
</div>
<div class="parent">
<p class="child">child</p>
</div>
JavaScript:
"use strict";
(function(window) {
var i, $, $Obj, ele; // global variable
$ = function(el, length) {
return new $Obj(el, length); // create new object
};
$Obj = function(el, length) {
ele = document.querySelectorAll(el); // get selector element
this.length = ele.length; // count the length of ele
for (i = 0; i < this.length; i++) {
this[i] = ele[i]; // loop it
}
};
$Obj.prototype = { // object prototype
each : function(fn) { // create method each just like jquery
var arr = []; // create array to store value
for (i = 0; i < this.length; i++) {
arr.push(this[i]); // push it to arr variable
}
fn.apply(this, arr); // IS THIS THE CORRECT WAY TO APPLY IT?
return this; // return this, so, it's chainable for other method
}
};
window.$ = $; // make dollar sign global object
})(window);
$(".child").each(function() {
console.log(this);
this.style.color = "red"; // not working, what's wrong with my code? is it because my "apply" wrong?
});
如何将那些.child 样式颜色变为红色?
我的代码有什么问题?
提前谢谢...
【问题讨论】:
-
var i, ele; // global variable肯定会成为错误的来源。
标签: javascript jquery oop