获取各种类型节点:

元素节点、文本节点、属性节点、注释节点


元素节点  标签名  null   1
属性节点  属性名  属性值   2
文本节点  #text  文本值      3
注释节点#comment 注释内容   8
 
 //获取节点所有的子节点  节点.childNodes
//获取节点的子元素.children。
 //获取节点所有属性节点  节点.attributes
 
//1. 元素节点  4种方式获取
 var oDiv = document.getElementById("box");  //通过id获取元素节点
 var oDiv = document.getElementsByClassName("div")[0];  //通过样式名字获取节点(class名字)
 var oDiv = document.getElementsByTagName("div")[0];       //通过标签名字获取节点(用div,p,li)
 var oDiv = document.getElementsByName("nana")[1];    //通过name元素获取节点
 
//2.文本节点
 console.log( oDivChilds[0].nodeName,oDivChilds[0].nodeValue,oDivChilds[0].nodeType );
 
 
//3.注释节点
 console.log( oDivChilds[1].nodeName,oDivChilds[1].nodeValue,oDivChilds[1].nodeType );
 
 
//4.获取元素节点的属性节点
 console.log( oDiv.attributes );
 var oDivAttris = oDiv.attributes;
 console.log( oDivAttris[0].nodeName,oDivAttris[0].nodeValue,oDivAttris[0].nodeType );
 
 
节点的层次关系:
var oDiv = $("box");
  // 1.获取所有的子节点 childNodes
  console.log( oDiv.innerText );
  // 2.获取第一个子节点 firstChild
  console.log( oDiv.firstChild );
  // 3.获取最后一个子节点 lastChild
  console.log( oDiv.lastChild );
  // 4.获取父节点  parentNode
  console.log( oDiv.parentNode );
 
  ////////////////兄弟关系/////////////////
  // 5.获取前一个兄弟节点  previousSibling
  console.log( oDiv.previousSibling );
  // 6.获取下一个兄弟节点  nextSibling 
  console.log( oDiv.nextSibling );
 
  ///////////////////根节点/////////////////
  console.log( oDiv.ownerDocument );
 
创建元素节点
<style type="text/css">
  html,body{
   height: 100%;
  }
  .box{
   width: 40px;
   height: 40px;
   border-radius: 50%;
   position: absolute;
   animation: move 5s ease-out forwards infinite;
   /*animation: 动画名 播放事件 播放速度 反向播放 重复次数;*/
  }
  @-webkit-keyframes move{
   50%{left:800px;top:500px;opacity: 0;}
   100%{left:0px;top:100px;opacity: 1;}
  }
  @-moz-keyframes move{
   50%{left:800px;top:500px;opacity: 0;}
   100%{left:0px;top:100px;opacity: 1;}
  }
  @keyframes move{
   50%{left:800px;top:500px;opacity: 0;}
   100%{left:0px;top:100px;opacity: 1;}
  }
 </style>
</head>
<body>
<button onclick="createDiv()">创建div</button>
<script type="text/javascript" src="new_file.js"></script>
<script type="text/javascript">
 //document.createElement("div");
 function createDiv(){
  var oDiv = document.createElement("div");
  //oDiv = $("div");
  //console.log(oDiv)
  //设置div的样式
  // 方法一:用js设置样式
  oDiv.style.width = "200px";
  oDiv.style.height = "200px";
  oDiv.style.backgroundColor = randomColor();
  oDiv.style.float = "left";
//  // 方法二:用css设置样式
//  oDiv.className = "box";
//  oDiv.style.backgroundColor = randomColor();
//  oDiv.style.left =  ( Math.random()*($w()-40) )+"px";
//  oDiv.style.top = ( Math.random()*($h() -40) )+100+"px";
 
  // 父节点.appendChild(子节点) 将子节点添加到父节点孩子列表的末尾
  document.body.appendChild(oDiv);
 }
</script>
</body>
 节点操作
在某个子节点的前面插入父节点。insertBefore(“新来的”,“旧节点”)
 例子:
 <ul id="list">
  
  <li>1111111111111</li>
  <li>2222222222222</li>
  <li>2222222222222</li>
  <li>2222222222222</li>
  <li>tttt</li>
 </ul>
function createLi(){
   var str = prompt("请输入点东西");
   var oLi = document.createElement("li");
   oLi.innerHTML= str;
   var oUl = document.getElementById("list");    //找到子元素的父级然后填入li标签里
   oUl.appendChild(oLi);                                    //添加在了最后
  }
 
function createLiAtFirst(){
   var str = prompt("请输入点东西");
   var oLi = document.createElement("li");
   oLi.innerHTML = str;
   var oUl = document.getElementById("list");
   oUl.insertBefore(oLi,oUl.firstChild);                          //添加在第一个li标签之前
}
(js中只有insertBefore() 没有insertAfter
自定义函数实现insertAfter的功能)
 
1.创建元素节点 document.createElement(标签名)   (document.getElementById)找到这个元素节点
  2.添加到父节点  
     父节点.appendChild(子节点)
                父节点.insertBefore(新节点,旧节点)
  3.删除节点  父节点.removeChild(子节点)
  4.替换节点  父节点.replaceChild(新节点,旧节点)
  5.克隆节点    节点.cloneNode() 克隆节点,不克隆子节点
     节点.cloneNode(true)克隆节点,克隆子节点
  6.创建文本节点  document.createTextNode("文本值")
例子:
function deleteDiv(){
   //将div从父节点body中删除
   // 父节点.removeChild(子节点)
   var oDiv = document.getElementById("box");
   document.body.removeChild(oDiv);
  }
  function replaceDiv(){
   //将子节点替换成另一个节点
   // 父节点.replaceChild(新节点,旧节点)
   var oImg = document.createElement("img");
   oImg.src = "利利.jpg";
   oImg.style.width = "400px";
   oImg.style.height = "400px";
  var oDiv = document.getElementById("box");
  document.body.replaceChild(oImg,oDiv); 
  }
 
  function cloneDiv(){
   var oDiv = document.getElementById("box");
   //节点.cloneNode() 克隆当前的节点
   // 不传值 默认是false 不会克隆子节点
   // 传值 true 克隆子节点
   console.log( oDiv.cloneNode(true) );
   document.body.appendChild( oDiv.cloneNode(true) );
  }
  function createText(){
   var tNode = document.createTextNode("文本节点");
   document.body.appendChild(tNode);
  }
 
创建表格:
1.获取行列
2.创建表格 table标签
   2.1 创建table标签,然后添加到body上
   2.2 外层循环创建tr,然后把tr添加table;
   2.3 内层循环创建td,给td设置宽高背景色。然后把td添加到tr上
 
示范
  function createTable(){
    var rows = parseInt( $("rw").value );
    var cols = parseInt( $("cl").value );
    var oTb =document.createElement("table");
    document.body.appendChild(oTb);
    for (var i=0; i<rows; i++){
     var oTr =document.createElement("tr");
     oTb.appendChild(oTr);
     for(var j=0; j<cols; j++){
      var oTd =document.createElement("td");
      oTd.style.height="15px";
      oTd.style.width="20px";
      oTd.style.backgroundColor=randomColor()
      oTr.appendChild(oTd);
     }
    }
}
 
选项卡例子: 
<script>
   var btns = document.getElementsByClassName("btn_list")[0].children;
   var cons = document.getElementsByClassName("con_list")[0].children;
   for (var i=0; i<btns.length; i++) {
    btns[i].index = i;
    btns[i].onclick = function (){
     for (var x=0; x<cons.length; x++) {
      cons[x].style.display = "none"; 
      btns[x].className='';
     }
     this.className='abc';
     cons[this.index].style.display = "block";
    }
   }
  </script>
html
<style>
   *{padding: 0; margin: 0;}
   li{list-style: none; float: left;}
   ul>li{text-align: center; width: 160px; background: red;}
   ul{width: 480px; height: 40px; line-height: 40px;}
   ol{width: 480px; height: 500px; background: yellow; line-height: 500px; font-size: 200px; text-align: center; overflow: hidden;}
   ol>li{width: 100%; height: 100%;}
   .hide{display: none;}
   .show{display: block;}
   .abc{background: green;}
  </style>
 </head>
 <body>
  <ul class="btn_list" id="a">
   <li class="abc">按钮A</li>
   <li>按钮B</li>
   <li>按钮C</li>
  </ul>
  <ol class="con_list">
   <li>A</li>
   <li>B</li>
   <li>C</li>
  </ol>
 
 
 
posted on 2018-09-10 18:39  听风说爱你  阅读(185)  评论(0)    收藏  举报