jQ - Cdom

/*
* dom操作
* Cdom('li').addClass('a', 'b').css('color', 'red').removeClass('a', 'b');
*/
Cdom = (() => {
	_dom = function (elem, wrap) {
		return new _dom.init(elem, wrap);
	};

	_dom.init = function (elem, wrap) {
		switch (typeof elem) {
			case 'object': 
				this[0] = elem;
				this.length = 1;
				break;
			case 'string': 
				wrap && wrap[0] && (wrap = wrap[0]);
				elem = (wrap || document).querySelectorAll(elem);
				
				for (var i = 0; i < elem.length; i++) {
					this[i] = elem[i];
				}
				this.length = elem.length;
				break;
		}

		return this;
	};

	_dom.init.prototype = _dom.prototype = {
		addClass: function (val, val_1, val_2) {
			if (val_2) {
				for (var i = 0; i < this.length; i++) {
					this[i].classList.add(val, val_1, val_2);
				}
			} else if (val_1) {
				for (var i = 0; i < this.length; i++) {
					this[i].classList.add(val, val_1);
				}
			} else {
				for (var i = 0; i < this.length; i++) {
					this[i].classList.add(val);
				}
			}

			return this;
		},

		removeClass: function (val, val_1, val_2) {
			for (var i = 0; i < this.length; i++) {
				this[i].classList.remove(val, val_1, val_2);
			}

			return this;
		},

		css: function (attr, val) {
			for (var i = 0; i < this.length; i++) {
				if (val == undefined) {
					if (typeof attr === 'object') {
						for (var key in attr) {
							this.css(key, attr[key]);
						}
					} else if (typeof attr === 'string') {
						return getComputedStyle(this[i])[attr];
					}
				} else {
					this[i].style[attr] = val;
				}
			}

			return this;
		},

		html: function (_content) {
			for (var i = 0; i < this.length; i++) {
				this[i].innerHTML = _content;
			}

			return this;
		}
	};

	return _dom;
})();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章