1 function $(){ return document.getElementById(arguments[0])}; 2 3 /** 4 * 得到上一个元素 5 * @param {Object} elem 6 */ 7 function prev(elem){ 8 do{ 9 elem = elem.previousSibling; 10 } while(elem && elem.nodeType != 1); 11 return elem; 12 } 13 14 /** 15 * 得到下一个元素 16 * @param {Object} elem 17 */ 18 function next(elem){ 19 do{ 20 elem = elem.nextSibling; 21 } while(elem && elem.nodeType != 1); 22 return elem; 23 } 24 25 /** 26 * 得到第一个元素 27 * @param {Object} elem 28 */ 29 function first(elem){ 30 elem = elem.firstChild; 31 return elem && elem.nodeType != 1 ? next(elem) : elem; 32 } 33 34 /** 35 * 得到最后一个元素 36 * @param {Object} elem 37 */ 38 function last(elem){ 39 elem = elem.lastChild; 40 return elem && elem.nodeType != 1 ? prev(elem) : elem; 41 } 42 43 /** 44 * 得到父元素 45 * @param {Object} elem 46 * @param {Number} num 需要寻找的父级级别 47 */ 48 function parent(elem, num){ 49 num = num || 1; 50 for(var i=0; i=0; i--){141 parent.insertBefore(elems[i], before);142 }143 }144 145 /**146 * 创建元素147 * @param {Object} elem148 */149 function create(elem){150 //测试是否用命名空间来创建新的元素151 return document.createElementNS ? document.createElementNS('http://www.w3.org/1999/xhtml', elem) : document.createElement(elem);152 }153 154 /**155 * before 辅助函数156 * @param {Object} elem157 */158 function checkElem(a){159 var r = [];160 if(a.constructor != Array){ a = [a]};161 for(var i=0; i