var MyQuery = function(selector){
if (window == this)
return new MyQuery(selector);
// 在dom中根据标签名查找
var doms = document.getElementsByTagName(selector);
var arr = [];
for(var i = 0; i < doms.length; i++){
arr.push(doms.item(i));
}
return this.setArray(arr);
}
MyQuery.prototype.setArray = function(arr) {
this.length = 0;
[].push.apply(this, arr); // 类数组对象
console.log("元素个数: " + this.length);
return this;
}
MyQuery.fn = MyQuery.prototype;
var $ = MyQuery;
//插件扩展1)each
MyQuery.fn.each = function(method){
var len = this.length; // 元素个数
for(var i = 0; i < len; i++){
console.log(this[i]); // <div id="d"> <div id="fsd">
method.call(this[i], i);
}
}
//插件扩展2)show
MyQuery.fn.show = function(){
this.each(function(i){
console.log("下标: " + i + " id:" + this.id + " htnl:" + this.innerHTML);
});
}
//debugger
$("div").show();
<body>
<div id="d">divvv</div>
<div id="fsd">fdsf</div>
</body>