JavaScript獲取DOM元素

  獲取DOM元素
  <ul id="list">
   <li class="item">item1</li>
   <li class="item" name="two">item2</li>
   <li class="item active">item3</li>
   <li class="item">item4</li>
   <li class="item">item5</li>
  </ul>
  <script>
   // const定義的變量不能夠修改,並且必須初始化。
   const cl = console.log.bind(console);
   //1,標籤
   // li 標籤 獲取多個標籤使用 get Elements By Tag Name 按標記名獲取元素
   var lis = document.getElementsByTagName('li');
   cl(lis);
   cl("以上獲取全部li");
   // HTMLCollection:類數組
   // 能夠經過方法獲取須要的值:lis[鍵]或lis.item(鍵)
   cl(lis.item(2));
   cl("以上獲取其中li");
   //Ul標籤獲取
   var ul = document.getElementsByTagName('ul');
   cl(ul);
   cl("以上獲取全部ul");
   //2,ID(id是惟一的,不能用複數)
   //獲取單個標籤使用getElementById
   var ul = document.getElementById("list");
   // ul.style.cssText="color:red;list-type:none;border:1px solid;";
   cl(ul);
   cl("以上獲取ID爲**的UL");
   //3,class
   //獲取函數:getElementByClassName
   var lis = document.getElementsByClassName("item");
   cl(lis);
   cl("以上經過class獲取到li");
   //獲取某個li使用上方法
   // cl(lis.item(3));
   var lis = document.getElementsByClassName("item active");
   // document.querySelector(".item").style.color="red";
   cl(lis.item(2));
   cl("獲取active");
   //4,name
   var two = document.getElementsByName('two');
   cl(two);
   cl(two[0]);
   //5,css選擇器
   cl(document.querySelector("#list"));
   var item = document.querySelectorAll(".item");
   cl(item);
   cl("獲取css選擇器");
   //6,獲取
   var lis = document.querySelectorAll("#ul > li:nth-of-type(-n+3)");
   lis.forEach(function(item){
   item.style.color="yellow";
   });
   cl("獲取某個或多個");
  </script>
  遍歷元素節點
  <script>
   var cl = console.log.bind(console);
   ul = document.querySelector('ul');
   //獲取全部(childNodes)子節點
   cl(ul.childNodes);
   //js 經常使用6個節點。
   // 1,元素
   // 2,屬性
   // 3,文本
   // 6,註釋
   // 9,文檔
   // 11,文檔片斷
   //nodeType(節點類型)nodeValue(節點值)nodeName(節點名稱)
   cl((ul.childNodes[0].nodeType) + "----節點0位置的類型和值----" + (ul.childNodes[0].nodeValue));
   cl((ul.childNodes[1].nodeType) + "----節點1位置的類型和值----" + (ul.childNodes[1].nodeValue));
   cl((ul.childNodes[3].nodeType) + "----節點3位置的類型和名稱----" + (ul.childNodes[3].nodeName));
   // 獲取最後一個節點
   cl(ul.childNodes[ul.childNodes.length-1]);
   cl("----------遍歷li---------");
   var ele = [];
   ul.childNodes.forEach(function(item){
   // push() 方法可向數組的末尾添加一個或多個元素,並返回新的長度
   //意思就是在this->ele[]數組裏面添加獲取到的li元素
   if(item.nodeType === 1) this.push(item);
   },ele);
   cl(ele);
   //獲取第一個子(firstChild)或最後一個子(lastChild)
   cl(ul.firstChild);
   cl(ul.lastChild);
   //獲取前一個兄弟(previousSibling)或後一個兄弟(nextSibling)
   cl((ul.lastChild.previousSibling) + "---先後兄弟子節點----" + (ul.firstChild.nextSibling));//節點拼接顯示的是類型元素
   cl(ul.firstChild.nextSibling);
   cl(ul.lastChild.previousSibling);
   </script>
  遍歷元素節點
  <script>
   var cl=console.log.bind(console);
   var ul = document.querySelector("ul");
   //children和childNodes區別
   //1,childNodes獲取全部節點
   //2,children獲取html類型節點
   //獲取元素數量方法有二
   cl(ul.children.length);
   //子元素計數(childElementCount)
   cl(ul.childElementCount);
   //獲取第一個元素子元素(firstElementChild)獲取最後一個元素子元素(lastElementChild)獲取某個子元素children[索引]
   cl(ul.firstElementChild);
   //獲取前一個/後一個請使用索引(nextElementSibling)/(previousElementSibling)
   cl(ul.children[2].previousElementSibling);
   // HTMLCollention元素節點 沒有foEach方法
   cl("---for遍歷li元素---")
   for(var i = 0; i < ul.childElementCount;i++){
   cl(ul.children.item(i))
   }
  </script>
  dataset用戶自定義數據
  <div id="user" data-id="100" data-user-name="admin" data-src="http://baidu.com"></div>
   <script>
   var cl = console.log.bind(console);
   var user = document.querySelector("#user")
   //dataset是用來專門訪問data-的屬性。
   cl(user.dataset.id)
   //js規則:多單詞鏈接線去掉,將首字母大寫
   cl(user.dataset.userName)
   // 更改數據
   user.dataset.userName = "super";
   cl(user.dataset.userName)
   </script>
  body背景顏色切換小功能。
  <!DOCTYPE html>
  <html lang="en">
  <head>
   <meta charset="UTF-8">
   <title>classlist對象</title>
   <style>
   body{
   background:blue;
   }
   .p1{
   color:pink;
   font-size:28px;
   }
   .p2{
   background:#CCC;
   }
   .p3{
   font-weight:bold;
   text-align:center;
   }
   </style>
  </head>
  <body>
  <p>首頁背景顏色切換</p>
   <div>
   <span></span>
   <span></span>
   <span></span>
   </div>
   <script>
   var cl = console.log.bind(console);
   var p = document.querySelector("p");
   //獲取class屬性。在js中是保留字,因此用className
   // cl(p)
   //添加一個class類屬性樣式
   p.classList.add("p2")
   //刪除
   // p.classList.remove("p2");
   //自動切換
   p.classList.toggle("p2");
   p.classList.toggle("p3")
   //替換(須要替換的屬性,替換的屬性)
   p.classList.replace("p3", "p2");
   var div = document.querySelector("div");
   document.querySelector("div").style.cssText = "border:1px solid;width:120px;height:35px;"
   // document.querySelectorAll("span").style.cssText = "border:1px solid ;padding:5px;width:30px;height:30px;"
   div.children[0].style.cssText = "border:1px solid ;width:30px;height:30px;display:flex;float:left;background:red"
   div.children[1].style.cssText = "border:1px solid ;width:30px;height:30px;display:flex;float:left;margin:0 5px 0 5px;background:blue"
   div.children[2].style.cssText = "border:1px solid ;width:30px;height:30px;display:flex;floay:left;background:yellow"
   //添加點擊事件並改變屬性樣式
   div.children[0].addEventListener("click",bgspan1,false)
   function bgspan1(ev){
   document.body.style.background = "red";
   }
   div.children[1].addEventListener("click",bgspan2,false)
   function bgspan2(ev){
   document.body.style.background="blue"
   }
   div.children[2].addEventListener("click",bgspan3,false)
   function bgspan3(ev){
   document.body.style.background = "yellow"
   }
   </script>
  </body>
  </html>css

相關文章
相關標籤/搜索