时间:2021-05-26
JQuery作为应用最广的JS库,其最强大的功能之一就是几乎涵盖所有方法的且代码十分简短的选择器功能,我们也可用自己的代码实现此功能,代码逻辑、使用方法与JQuery一致
function ZQuery(arg){ this.elements = []; //存东西 this.domString = ''; //保存字符串标签 if(typeof arg=='function'){ //DOMReady DOMReady(arg); }else if(typeof arg=='string'||arg instanceof String){ if(arg.indexOf('<')!=-1){ this.domString = arg; }else{ //获取元素 this.elements = getEle(arg); this.length = this.elements.length; } }else{ //原生对象-》ZQuery对象 this.elements.push(arg); this.length = this.elements.length; }}ZQuery.prototype.css = function(name,value){ if(arguments.length==2){ //设置一个样式 for(var i=0;i<this.elements.length;i++){ this.elements[i].style[name] = value; } }else{ if(typeof name=='string'){ //获取样式 return getStyle(this.elements[0],name); }else{ //批量设置样式 var json = name; for(var name in json){ for(var i=0;i<this.elements.length;i++){ this.elements[i].style[name] = json[name]; } } } }};ZQuery.prototype.attr = function(name,value){ if(arguments.length==2){ //设置一个属性 for(var i=0;i<this.elements.length;i++){ this.elements[i].setAttribute(name,value); } }else{ if(typeof name=='string'){ //获取属性 return this.elements[0].getAttribute(name); }else{ //批量设置属性 var json = name; for(var name in json){ for(var i=0;i<this.elements.length;i++){ this.elements[i].setAttribute(name,json[name]); } } } }};ZQuery.prototype.addClass = function(sClass){ var re = new RegExp('\\b'+sClass+'\\b','g'); for(var i=0;i<this.elements.length;i++){ if(this.elements[i].className){ if(this.elements[i].className.search(re)==-1){ this.elements[i].className += ' '+sClass; } }else{ this.elements[i].className = sClass; } this.elements[i].className = this.elements[i].className.replace(/^\s+|\s+$/g,'').replace(/\s+/g,' '); } return this;};ZQuery.prototype.removeClass = function(sClass){ var re = new RegExp('\\b'+sClass+'\\b','g'); for(var i=0;i<this.elements.length;i++){ if(this.elements[i].className){ this.elements[i].className = this.elements[i].className.replace(re,''); this.elements[i].className = this.elements[i].className.replace(/^\s+|\s+$/g,'').replace(/\s+/g,' '); if(this.elements[i].className==''){ this.elements[i].removeAttribute('class'); } } } return this;};ZQuery.prototype.html = function(value){ if(value||value==''){ //设置 for(var i=0;i<this.elements.length;i++){ this.elements[i].innerHTML = value; } }else{ return this.elements[0].innerHTML; }};ZQuery.prototype.val = function(value){ if(value||value==''){ //设置 for(var i=0;i<this.elements.length;i++){ this.elements[i].value = value; } }else{ return this.elements[0].value; }};ZQuery.prototype.show = function(){ for(var i=0;i<this.elements.length;i++){ this.elements[i].style.display = 'block'; } return this;};ZQuery.prototype.hide = function(){ for(var i=0;i<this.elements.length;i++){ this.elements[i].style.display = 'none'; } return this;};;'click mouseover mouseout mousedown mouseup mousemove mouseenter mouseleave change keydown keyup contextmenu'.replace(/\w+/g,function(str){ ZQuery.prototype[str] = function(fn){ for(var i=0;i<this.elements.length;i++){ addEvent(this.elements[i],str,fn); } };});ZQuery.prototype.get = function(n){ for(var i=0;i<this.elements.length;i++){ if(i==n){ return this.elements[i]; } }};ZQuery.prototype.eq = function(n){ for(var i=0;i<this.elements.length;i++){ if(i==n){ return $(this.elements[i]); } }};ZQuery.prototype.index = function(){ var aSiblings = this.elements[0].parentNode.children; for(var i=0;i<aSiblings.length;i++){ if(aSiblings[i]==this.elements[0]){ return i; } }};ZQuery.prototype.hover = function(fn1,fn2){ for(var i=0;i<this.elements.length;i++){ $(this.elements[i]).mouseenter(fn1); $(this.elements[i]).mouseleave(fn2); }};ZQuery.prototype.toggle = function(){ var args = arguments; var _this = this; for(var i=0;i<this.elements.length;i++){ ;(function(count){ $(_this.elements[i]).click(function(ev){ args[count%args.length].call(this,ev); count++; }); })(0); }};ZQuery.prototype.animate = function(json,options){ for(var i=0;i<this.elements.length;i++){ move(this.elements[i],json,options); }};ZQuery.prototype.appendTo = function(arg){ var aParent = $(arg); for(var i=0;i<aParent.length;i++){ aParent.get(i).insertAdjacentHTML('beforeEnd',this.domString); } return this;};ZQuery.prototype.prependTo = function(arg){ var aParent = $(arg); for(var i=0;i<aParent.length;i++){ aParent.get(i).insertAdjacentHTML('afterBegin',this.domString); } return this;};ZQuery.prototype.insertAfter = function(arg){ var aParent = $(arg); for(var i=0;i<aParent.length;i++){ aParent.get(i).insertAdjacentHTML('afterEnd',this.domString); } return this;};ZQuery.prototype.insertBefore = function(arg){ var aParent = $(arg); for(var i=0;i<aParent.length;i++){ aParent.get(i).insertAdjacentHTML('beforeBegin',this.domString); } return this;};ZQuery.prototype.remove = function(){ var oParent = this.elements[0].parentNode; for(var i=0;i<this.elements.length;i++){ oParent.removeChild(this.elements[i]); } return this;};function $(arg){ return new ZQuery(arg);};$.ajax = function(json){ ajax(json);};$.jsonp = function(json){ jsonp(json);};$.fn = ZQuery.prototype;$.fn.extend = function(json){ for(var name in json){ ZQuery.prototype[name] = json[name]; }};function json2url(json){ var arr = []; for(var name in json){ arr.push(name+'='+encodeURIComponent(json[name])); } return arr.join('&');}function ajax(json){ json = json||{}; if(!json.url)return; json.type = json.type||'get'; json.timeout = json.timeout||15000; json.data = json.data||{}; json.data.t = Math.random(); if(window.XMLHttpRequest){ var oAjax = new XMLHttpRequest(); }else{ var oAjax = new ActiveXObject('Microsoft.XMLHTTP'); } switch(json.type.toLowerCase()){ case 'get': oAjax.open('GET',json.url+'?'+json2url(json.data),true); oAjax.send(); break; case 'post': oAjax.open('POST',json.url,true); oAjax.setRequestHeader('Content-Type','application/x-plete(); } },30);}以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
今天学习jQuery的选择器:jQuery选择器分为基本选择器、层次选择器、过滤选择器、表单选择器。基本选择器:id,class,标签名,*,元素组合(div,
jQuery元素选择器和属性选择器允许您通过标签名、属性名或内容对HTML元素进行选择。jQuery元素选择器:jQuery使用CSS选择器来选取HTML元素。
本文实例讲述了Jquery中CSS选择器用法。分享给大家供大家参考。具体如下:jQuery使用了一套css选择器,共有5种,即标签选择器,ID选择器,类选择器,
选择器是jQuery最基础的东西,本文中列举的选择器基本上囊括了所有的jQuery选择器,也许各位通过这篇文章能够加深对jQuery选择器的理解,它们本身用法就
学习【jsDOM编程艺术】,最后面有许多jQuery的选择器,每个都动手敲了一遍。jQuery提供了高级选择器的方法。js获取元素的三个基本方法分别是通过标签名