1. 程式人生 > 其它 >JavaScript DOM 基礎操作

JavaScript DOM 基礎操作

JavaScript DOM 基礎操作

一、獲取元素的六方式

document.getElementById('id名稱')   //根據id名稱獲取             
document.getElementsByclassName('元素類名') //根據元素類名獲取   返回值:偽陣列
document.getElementsByTagName('元素類名')   //根據元素標籤獲取   返回值:偽陣列
document.querySelector('選擇器')   //根據選擇器獲取第一個元素
document.querySelectorAll('選擇器') //根據選擇器獲取所有元素      返回值:偽陣列

二、操作元素內容

1.獲取元素文字內容

格式:

獲取內容:元素 . innrtText

修改內容:元素 . innerText="修改的內容"

//點選div盒子改變裡面的文字

<div Style="background:red" id="JD">我是舊的內容</div>

//獲取元素(通過標籤選擇器來獲取內容)
var ele=document.querySelector('div')
//獲取元素(通過id獲取元素)
var btn=document.getElementById('JD')

//獲取元素文字內容並輸出
console.log(ele.innerText)

//給div一個點選事件(這裡用的是id獲取到的div元素)
btn.onclick=function(){
    //重新為div設定新的內容
    ele.innerText="我重生了"
}

2.操作元素超文字內容(直接修改程式碼)

格式:

獲取內容:元素 . innrtHTML

修改內容:元素 . innerHTML="新的標籤"

//點選div盒子把div變成p標籤
<div style="background:red" id="JD">我是div盒子</div>

//獲取元素(通過標籤選擇器來獲取內容)
var ele=document.querySelector('div')
//獲取元素(通過id獲取元素)
var btn=document.getElementById('JD')

//獲取元素的標籤裡的內容以文字的方式並輸出
console.log(ele.innerHTML)

//給div一個點選事件(這裡用的是id獲取到的div元素)
 btn.onclick=function(){
    //把div盒子變成p標籤
    ele.innerHTML="<p>我變成了p標籤了,嚶嚶嚶!</p>"
}

三、操作元素屬性

1.原生屬性(type、id、src)

格式:

獲取屬性:元素 . 屬性名

設定屬性: 元素 . 屬性名=”屬性值“

//點選圖片改變圖片背景連結達到來回切換背景的效果
   
      //html
<img scr="../img/bg1.jpg" id="bg">

    
      //JavaScript
//獲取元素(通過id獲取元素)
var btn=document.getElementById('bg')
//獲取元素scr的路徑並輸出
console.log(btn.src)
var tes=0    //控制切換的圖片
//給img一個點選事件(這裡用的是id獲取到的img元素)
 btn.onclick=function(){
     if(tes===0){
     btn.src="../img/bg2.jpg" 
      tes=1
     }else{
      btn.src="../img/bg1.jpg" 
         tes=0
}

2.定義和操作自定義屬性

(1)定義屬性

定義格式:data-*

<html>
<head>
<meta charset="utf-8">
<title>無標題文件</title>
</head>

<body>
<div style="wight:500px;height:500px;background:black"  data-a="p1" id="ab"> p1
  <div style="wight:150px;height:150px;background:green" data-a="p2">p2</div>
  <div  style="wight:150px;height:150px;background:blue" data-a="p3">p3</div>
</div>
<script>  
		//獲取到父的div元素
		var divab=document.getElementById("ab")
		
		//點選點選子元素父元素的事件也會被觸發
		divab.onclick=function(e){
			//用自定義屬性來判斷點的是子元素,還是父元素。
         if(e.target.dataset.a==="p1"){
	     console.log("p1")
       }
            if(e.target.dataset.a==="p2"){
	      console.log("p2")
       }
            if(e.target.dataset.a==="p3"){
	     console.log("p3")
       }
         
     }
	 
    </script>
</body>
</html>

(2)操作自定義屬性

操作自定義屬性格式:

獲取屬性:元素 . getAttribute("屬性名")

設定屬性:元素 . setAttribute("屬性名",”屬性值“)

刪除屬性:元素 . removeAttribute("屬性名")

//html
<div id="tes" data-cs="Hello Wrold">自定義屬性測試</div>

//JavaScript

//獲取元素
var ter=document.getElmentById("tes")

//獲取自定義屬性並輸出
console.log(ter.getAttribute(CS))
//重新給自定義屬性CS賦值
ter.setAttribute("CS","Hello man")
//刪除自定義屬性
ter.removeAttribute("CS")

四、操作元素類名

格式:

獲取類名:元素 . className

設定類名:元素 . className="新類名"

//點選div盒子和實現改變背景顏色

//設定類名改變div的背景色
.divBgRed{
background:red;
}
.divBgBlue{
background:blue;
}

<div class="divBgRed" id="divid">我是可以變顏色的盒子</div>

//獲取div的元素
var divid=document.getElementById("divid")

divid.onclick=function(){
    divid.className="divBgBlue"
}

五、操作元素行內樣式

格式:

獲取行內樣式:元素 .style . 樣式名

設定行內樣式:元素 . style.樣式名="樣式值"

//輸出和修改行內樣式
<div style="background-color:red;width=100px" id="divid">我是紅色的div盒子</div>

var tre=document.getElementById("divid")

console.log(tre.style.backgroundColor)    //當行內樣式有短橫線時,把短橫線去掉變成駝峰寫法

tre.onclick=function(){
    tre.style.background="blue"
    tre.style.width="500px"
}

六、獲取非行內樣式

格式:window . getComputedStyle(元素) . 樣式名

注意:行內樣式和非行內樣式都可以獲取

七、節點操作(標籤)

1.建立結點(標籤)

格式:document.creatElement("標籤名稱")

var div=document.creatElement("div")
var p=document.creartElement("p")

2.插入結點(標籤)

格式:

**父節點的元素 . appendChild(子節點) ** //預設在最後插入

父節點元素 . insertBefore(要插入的節點,哪一個你節點的前面)

<<body>
	<div>
		<span>我是span標籤</span>
	     <ul>我是ul標籤</ul>
	</div>
<script>
//問題1:在ul標籤裡面的最後位置插入li標籤
	//獲取ul標籤的元素
var ul=document.querySelector("ul")
//建立li標籤
var li=document.createElement("li")
//在ul標籤裡插入li標籤
ul.appendChild(li)

//問題2:在div裡的span標籤前面插入入一個p標籤
	//獲取div父元素
	var div=document.querySelector("div")
	//獲取要插入位置的後一個標籤的元素
	var span=document.querySelector("span")
	//建立要插入的p標籤
	var p=document.createElement("p")
	//在相應位置插入p標籤
	div.insertBefore(p,span)
      
</script>
</body>

3.刪除節點(標籤)

格式:

父節點元素 . removeChild(子節點)

想刪除節點元素 . remove()

<body>
 <div> 
    <span>標籤</span>
 </div>
</body>

<script>
    //獲取父標籤的元素
  var div=document.querySelector("div")
  //刪除span標籤
  div.removeChild(span)
    
    //獲取要刪除span標籤的元素
   var span=ocument.querySelector("span")
   //刪除span標籤
   span.remove()
</script>

4.替換節點(標籤)

格式:

父節點元素 . replaceChild(換上節點,換下節點)

<body>
 <div> 
    <span>標籤</span>
 </div>
</body>

<script>
    //獲取span標籤的父元素
    var div=document.querySelector("div")
    //建立p標籤
    var p=document.creartElement("p") 
    //獲取span標籤的元素
    var span=document.querySelector("span")
    //把span標籤替換成p標籤,裡面的內容不變
    div.replaceChild(p,span)
</script>

5.克隆節點(標籤)

說明:就是把想要的標籤複製一份,需要結合插入標籤才能有用(相對於複製和貼上)

格式:

想要克隆標籤的元素 . cloneNode(是否克隆後代節點)

//問題:把div標籤複製一份,並複製裡面的子元素
<body>
 <div> 
    <span>標籤</span>
 </div>
</body>

<script>
    //獲取div標籤的元素
   var div=document.querySelector("div")
  //克隆div標籤並克隆裡面的子元素
   var cle=div.cloneNode(true)
   
   //把複製的div標籤插入到原來div後面
       //獲取body標籤的元素
    var body=document.querySelector("body")
        //插入div標籤
    body.appendChild(cle)
   
</script>

本文來自部落格園,作者:永恆之月TEL,轉載請註明原文連結:https://www.cnblogs.com/akc4/p/15817278.html