-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathminiQuery.min.js
13 lines (13 loc) · 5.47 KB
/
miniQuery.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
// miniQuery | https://github.com/marcelduin/miniQuery | (c) 2014 Marcel Duin <[email protected]> | MIT Licensed, https://github.com/marcelduin/miniQuery/blob/master/LICENSE
$=function(a){return new _$(a)};$.extend=function(){function a(b,d){for(var h in b){var g=b[h],e=g&&g.constructor;d[h]=c&&e&&(e==Array||e==Object)?a(g,new e):!e||e!=Number&&e!=String?g:f&&e==String&&d[h]&&d[h].constructor==String?d[h]+" "+g:e(g)}return d}for(var b=arguments,c=!0===b[0],d=b[c&&1||0],f=b[c&&3||2],k=c?2:1;k<b.length;k++)a(b[k],d);return d};
function _getEls(a,b){if(a==window)return[window];if(a instanceof Element)return[a];if(a instanceof Array||a instanceof _$)return a;if(/^\</.test(a)){var c=document.createElement("div");c.innerHTML=a;return c.childNodes}return a?(b||document).querySelectorAll(a):[]}function _$(a,b){var c=_getEls(a,b),d;for(d in c)this[d]=c[d];this.length||(this.length=c.length)}
_$.prototype={each:function(a){for(var b=0;b<this.length;b++)a.call(this[b]);return this},remove:function(){this.each(function(){this.parentNode&&this.parentNode.removeChild(this)});return this},clone:function(a){var b=[];this.each(function(){var c=this.cloneNode(!a);c._originalNode=this;b.push(c)});return $(b)},replaceWith:function(a){var b=this;b[0]&&(a.each?a.each(function(){b[0].parentNode.insertBefore(this,b[0])}):b[0].parentNode.insertBefore(a,b[0]),b.remove());return this},insertBefore:function(a){a=
a.length?a[0]:a;this.each(function(){a.parentNode.insertBefore(this,a)})},appendTo:function(a){a=a.length?a[0]:a;this.each(function(){a.appendChild(this)});return this},append:function(a){this[0]&&$(a).appendTo(this[0]);return this},parent:function(){var a=[];this.each(function(){0>a.indexOf(this.parentNode)&&a.push(this.parentNode)});return new _$(a)},closest:function(a){var b=[];this.each(function(){for(var c=this;c=c.parentNode;)if($(c).filter(a)[0])return 0>b.indexOf(c)&&b.push(c)});return new _$(b)},
children:function(a){var b="string"==typeof a?a:"*",c=[];this.each(function(){for(var d=this.querySelectorAll(b),f=0;f<d.length;f++)d[f].parentNode==this&&(a instanceof _$?a.has(d[f]):1)&&c.push(d[f])});return new _$(c)},siblings:function(a){var b=[],c=this;this.parent().children().filter(a).each(function(){!c.has(this)&&0>b.indexOf(this)&&b.push(this)});return new _$(b)},find:function(a){return new _$(a,this[0])},filter:function(a,b){a=$("<div>").append(this.clone(!0)).children(a);return new _$([].filter.call(this,
function(c){for(var d=0;d<a.length;d++)if(a[d]._originalNode==c)return!b;return!!b}))},not:function(a){return this.filter(a,!0)},eq:function(a){return new _$(this[a])},has:function(a){for(var b=0;b<this.length;b++)if(this[b]._originalNode==a||this[b]==a._originalNode||this[b]==a)return!0;return!1},add:function(a){a=_getEls(a);for(var b=[],c=0;c<this.length;c++)b.push(this[c]);a=b.concat([].filter.call(a,function(a){return-1==b.indexOf(a)}));return a.length==this.length?this:new _$(a)},attr:function(a,
b){if(void 0===b)return this[0]&&this[0].getAttribute(a);this.each(function(){this[(null===b?"remove":"set")+"Attribute"](a,b)});return this},trigger:function(a,b){this.each(function(){var c=!$.browser.ie&&window.CustomEvent?new CustomEvent(a,{detail:b}):document.createEvent("CustomEvent");!$.browser.ie&&window.CustomEvent||c.initCustomEvent(a,!1,!1,b);this.dispatchEvent(c)});return this},on:function(a,b){a=a.split(" ");this.each(function(){for(var c in a)this.addEventListener(a[c],b)});return this},
off:function(a,b){a=a.split(" ");this.each(function(){for(var c in a)this.removeEventListener(a[c],b)});return this},click:function(a){if(a instanceof Function)this.on("click",a);else this.trigger("click");return this},text:function(a){if(void 0===a)return this[0]&&this[0].textContent;this.each(function(){this.textContent=a});return this},html:function(a){if(void 0===a)return this[0]&&this[0].innerHTML;this.each(function(){this.innerHTML=a});return this},hasClass:function(a,b){b=0;this.each(function(){b+=
this.classList.contains(a)&&1||0});return!!b},addClass:function(a){a=a.split(" ");this.each(function(){for(var b in a)a[b]&&this.classList.add(a[b])});return this},removeClass:function(a){a=a.split(" ");this.each(function(){for(var b in a)a[b]&&this.classList.remove(a[b])});return this},toggleClass:function(a){a=a.split(" ");for(var b in a)if(a[b])this[(this.hasClass(a[b])?"remove":"add")+"Class"](a[b]);return this},setcss:function(a,b){this.each(function(){this.style.setProperty(a,b)});return this},
getcss:function(a){return this[0]&&this[0].style.getPropertyValue(a)},css:function(a,b){if("string"==typeof a){if(void 0===b)return this.getcss(a);this.setcss(a,b)}else for(var c in a)this.setcss(c,a[c]);return this},hide:function(){this.setcss("display","none");return this},show:function(){this.setcss("display","block");return this},width:function(){return this[0]&&this[0].clientWidth},height:function(){return this[0]&&this[0].clientHeight}};
$.browser=new function(){var a=navigator.userAgent.toLowerCase();this.webkit=/applewebkit/.test(a);this.firefox=/firefox/.test(a);this.safari=/safari/.test(a)&&!/chrome/.test(a);this.ie=/msie/.test(a)||/trident/.test(a);this.iemobile=/iemobile/.test(a);this.iOS=/ipad|iphone|ipod/.test(a);this.android=/android/.test(a);this.mobile=this.iOS||this.android||this.iemobile;this.unknown=!this.webkit&&!this.firefox&&!this.ie&&!this.iOS&&!this.android;this.version=parseFloat(this.webkit?a.match(/applewebkit\/(\d+)\./)[1]:
this.firefox?a.match(/firefox\/(\d+)\./)[1]:this.ie?a.match(/(msie\s|rv\:)(\d+)\./)[2]:-1);this.retina=window.devicePixelRatio&&2<=window.devicePixelRatio&&this.iOS};