js笔记:动态创建HTML内容[改进版]
点击当前菜单时隐藏其他子菜单
- <script type="text/javascript">
- function insertAfter(newElement,targetElement){
- var parent = targetElement.parentNode;
- if(parent.lastChild == targetElement){
- parent.appendChild(newElement);
- }else{
- parent.insertBefore(newElement,targetElement.nextSibling);
- }
- }
- function create(){
- var tagList = document.getElementsByTagName("li");
- var menuList = new Array("First","Seconde","Third");
- for(var i = 0;i < tagList.length;i++){
- tagList[i].getElementsByTagName("p")[0].onclick = function(event){
- if(!event){
- event = window.event;
- }
- var el = event.target || event.srcElement;
- var newTag = document.createElement("dl");
- var childNav = document.getElementById("nav").getElementsByTagName("dl");
- el.setAttribute("class","open");
- if(el.getAttribute("class") == "open" && el.nextSibling == null){
- for(var n = 0;n < childNav.length;n++){
- childNav[n].parentNode.firstChild.removeAttribute("class");
- childNav[n].parentNode.removeChild(childNav[n]);
- }
- insertAfter(newTag,el);
- for(var k = 0;k < menuList.length;k++){
- var newTagDd = document.createElement("dd");
- newTag.appendChild(newTagDd);
- var menuText = menuList[k];
- var newText = document.createTextNode(menuText);
- newTagDd.appendChild(newText);
- }
- }
- else{
- el.parentNode.removeChild(el.nextSibling);
- el.removeAttribute("class");
- }
- }
- }
- }
- window.onload = function(){
- create();
- }
- </script>