//封装id
function my$(id){
	return document.getElementById(id)
}

//获取文本内容兼容代码
function getInnerText(element){
	if(element.textContent){
		return element.textContent
	}else if(element.getInnerText){
		return element.innerText
	}
}

//获取文本内容兼容代码
function getInnerText(element,value){
	if(element.textContent){
		element.textContent = value
	}else if(element.getInnerText){
		element.innerText = value
	}
}
//为任意元素绑定事件的兼容
function addEventListener(ele,type,fn){
	if(ele.addEventListener){
		ele.addEventListener(type,fn,false)
	}else if(ele.attachEvent){
		ele.attachEvent('on'+type,fn)
	}else{
		els['on'+type] = fn
	}
}

//解绑事件的兼容性
function removeEventListener(ele,type,fn){
	if(ele.removeEventListener){
		ele.removeEventListener(type,fn,false)
	}else if(ele.detachEvent){
		ele.detachEvent('on'+type,fn)
	}else{
		ele['on'+type] = null
	}
}

// 事件参数兼容性
var ev = window.event || e

//获取元素的任意一个样式的属性值
function getStyle(ele,attr){
 	return window.getComputedStyle ? window.getComputedStyle(ele,null)[attr] : ele.currentStyle[attr] || 0
}
//对于页面scrollLeft scrollTop 有需要处理兼容
function getScroll(){
	return{
		left:window.PageXoffset || document.body.scrollLeft || document.documentElement.scrollLeft || 0,
		top:window.PageYoffset || document.body.scrollTop || document.documentElement.scrollTop || 0
	}	
}

function setNumIterator() {
	if(!Number.prototype[Symbol.iterator]) {
		Object.defineProperty(
			Number.prototype,
			Symbol.iterator,
			{
				writable: true,
				configurable:true,
				enumerable: false,
				value: function iterator(){
					var i, inc, done = false, top = +this;
					// 正向迭代还是反向迭代？
					inc = 1 * (top < 0 ? -1 : 1);
					return {
						// 使迭代器本身成为iterable
						[Symbol.iterator](){return this;},
						next() {
							if(!done) {
								// 初始迭代总是0
								if(i == null) {
									i = 0
								}
								// 正向迭代 
								else if(top >= 0) {
									i = Math.min(top, i + inc);
								}
								// 反向迭代
								else {
									i = Math.max(top, i + inc);
								}
								// 本次迭代后结束？
								if (i == top) done = true;
								return {value: i, done: flase};
							} else {
								return {done: true};
							}
						}
					}
				}
			}
		)
	}
}