my_jquery
来源:互联网 发布:淘宝宝贝违规删除不了 编辑:程序博客网 时间:2024/06/06 01:21
/* * myjquery 0.1 - Javascript * * Copyright (c) 2011 zhuwei * * $Date: 2011-04-20$ */ var idExpr = /^#([\w-]+)$/; var singExpr = /^.\s+.$/; var toLower = Object.prototype.toLowerCase; var agent = navigator.userAgent.toLowerCase(); var $ = myjquery = window.$ = window.myjquery = function(selector, content){ return new myjquery.fn.init(selector, content); }myjquery.fn = myjquery.prototype = { version: "myjquery 0.1", length: 0, init: function(selector, content){ if (typeof selector == "string"){ var match = idExpr.exec(selector); var sing = singExpr.exec(selector); if (match && match[1]){ var emet = document.getElementById(match[1]); if (emet){ this[0] = emet; this.length = 1; } } else if (sing && sing[1]){ var emets = document.getElementsByTagName(sing[0]); var j = 0, k = 0, l = 0, len = emets.length; for (;j < len; j++){ for (;l < emets[j].childNodes.length;l++){ if (sing[1] === emets[j].childNodes[l].tagName.toLowerCase()){ this[k++] = emets[j].childNodes[l]; this.length = k; } } } } else{ var emets = document.getElementsByTagName("*"); var j = 0, k = 0, len = emets.length; for (;j<len;j++){ if (selector === emets[j].type || selector === emets[j].tagName.toLowerCase()){ this[k++] = emets[j]; this.length = k; } } } } else{ ; } this.content = document; this.selector = selector; return this; }, css: function(name, val){ if (val){ this.each(function(){ this.style[name] = val; }); } else{ if (typeof(name) == "string"){ return this[0] ? this[0].style[name] : null; } else{ this.each(function(){ for (var key in name){ this.style[key] = name[key]; } }); } } }, text: function(val){ if (val){ this.each(function(){ this.value = val; }, arguments); } else{ return this[0] ? this[0].value : null; } }, html: function(val){ if (val){ this.each(function(){ this.innerHTML = val; }); } else{ return this[0] ? this[0].innerHTML : null; } }, val: function(value){ if (value){ } }, height: function(val){ if (val){ this.each(function(){ this.style.height = val; }, arguments); } else{ return this[0] ? this[0].style.height : null; } }, width: function(val){ if (val) { this.each(function(){ this.style.width = val; }); } else{ return this[0] ? this[0].style.width : null; } }, attr: function(name, value){ if (value){ this.each(function(){ this[name] = value; }); } else{ if (typeof(name) == "string"){ return this[0] ? this[0].getAttribute(name) : null; } else{ this.each(function(){ for (var key in name){ this.setAttribute(key, name[key]); } }); } } }, removeAttr: function(name){ this.each(function(){ this.removeAttribute(name); }); }, addClass: function(className){ if (className){ this.each(function(){ this.className += this.className ? "" : className; }); } }, toggleClass: function(className){ if (className){ this.each(function(){ if (this.className.indexOf(className) != -1){ var classArray = className.split(' '); for (var t in classArray){ this.className = this.className.replace(className, ""); } } else this.className += this.className ? "" : className; }); } }, removeClass: function(className){ if (className){ this.each(function(){ var classArray = className.split(' '); for (var t in classArray){ this.className = this.className.replace(className, ""); } }); } }, hasClass: function(className){ return this.is("."+className); }, each: function(callback, args){ return myjquery.each(this, callback, args); }} myjquery.fn.init.prototype = myjquery.prototype;myjquery.each = function (obj, callback, args){ var i = 0; len = obj.length; if (args == undefined){ for (var value = obj[i]; i<len && callback.call(value,i,value) !== false;){ value = obj[++i]; } } else{ for (; i < len ;){ if (callback.apply(obj[i++], args) === false){ break; } } }}$("label").html(333);myjquery.browser = { msie: /msie/.test(agent), firefox:/firefox/.test(agent), opera:/opera/.test(agent), safari:/safari/.test(agent) && !/chrome/.test(agent), chrome:/chrome/.test(agent)}