首页 > 代码库 > js模拟高级语言的重载
js模拟高级语言的重载
js以递归的方式模拟高级语言的重载,我以添加元素节点为例子:
//现有的子元素之前插入一个新的子元素var before = function(elem,newElement,targetElement){ if(targetElement === undefined) return before(newElement ? newElement.parentNode : null,elem,newElement); //兼容ie7以下目标节点为空报错的问题 if(!targetElement) return elem ? elem.appendChild(newElement) : null; return elem.insertBefore(newElement,targetElement);};//现有的子元素之后插入一个新的子元素var after = function(elem,newElement,targetElement){ if(targetElement === undefined){ return after(newElement ? newElement.parentNode : null,elem,newElement); } return !elem || (elem.lastElementChild || elem.lastChild) == targetElement ? // 如果最后的节点是目标元素,则直接添加。因为默认是最后 before(elem,newElement,null) : //如果不是,则插入在目标元素的下一个兄弟节点 的前面。也就是目标元素的后面 before(newElement, targetElement.nextElementSibling || targetElement.nextSibling);};//调用:var elem = getElementById(‘d1‘), newElement = document.createElement(‘div‘), targetElement = elem.firstElementChild || elem.firstChild;before(elem,newElement,targetElement);before(newElement,targetElement);after(elem,newElement,targetElement);after(newElement,targetElement);
js模拟高级语言的重载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。