1. 程式人生 > 其它 >javascript基礎DOM物件6.0

javascript基礎DOM物件6.0

技術標籤:cssjsjavascripthtmlvue

9、DOM物件

HTML程式碼:

<div id="dd">
演示
</div>

<ul>
  <li>空調</li>
  <li class = "sp">空空</li>
  <li>冰鎮西瓜</li>
</ul>

<span class = "sp">
  根據class來獲取物件
</span>

<p name="pp">name=dd</p>
<i name="pp">name=dd</i>
<a name="pp">name</a>

<ol>
  <li>吃飯</li>
  <li>睡覺</li>
  <li>打豆豆</li>
<ol>

javascript程式碼:

(1)、通過id來獲取元物件

//根據id值獲取  物件
var obj = document.getElementById("dd");
//為物件設定css樣式  屬性值要雙引號
obj.style.color = "red";

(2)、根據標籤名來獲取物件

//document.getElementsByTagName("標籤名");返回一個集合【陣列】
//這裡取到的是所有li  所以lis裡面元素有多個
var lis = document.getElementsByTagName("li");
//設定背景顏色為綠色
lis[2].style.backgroundColor = "green";
//設定字型顏色為紅色
lis[2].style.color = "red";

(3)、通過class屬性值來獲取物件

//根據class的屬性值
var temps = document.getElementsByClassName("sp");
//對獲取的很多個sp  進行遍歷
for (var i<0; i<temps.length; i++) {
    temps[i].style.color = "orange";
    temps[i].style.backgroundColor = "grey";
    temps[i].style.fontSize = "40px";
}

(4)、通過name屬性值來獲取物件

//返回一個集合
var pps = document.getElementsByName("pp");

for (var i=0; i<pps.length; i++) {
    pps[i].style.color = "green";
    pps[i].style.display = "block";
    pps[i].style.border = "1px solid blue";
}

(5)、HTML5中新提供的方式

只返回匹配到的第一個元素,返回的是一個物件。

//document.querySelector("選擇器");
var fli = document.querySelector("ol>li");
//只為一個元素設定
fli.style.color = "blue";

返回所有匹配的元素,返回值都是集合【陣列】

//document.querySelectorAll("選擇器");
var olis = document.querySelectorAll("span");
for (var i=0; i<olis.length; i++) {
    olis[i].style.color = "red";
    olis[i].style.fontSize = "50px";
}

(6)、練習

HTML程式碼:

<ul>
    <li>吃飯</li>
    <li>睡覺</li>
    <li>打豆豆</li>
</ul>

  <ul id="u1">
    <li class="orange">抽菸</li>
    <li>喝酒</li>
    <li>燙頭</li>
  </ul>

練習6-1:點選變為字型變為紅色,再次點選變回顏色

javascript程式碼:

//通過js程式碼繫結事件
//當使用迴圈繫結事件時,this指代當前觸發事件的元素物件
var lis = document.getElementsByTagName("li");
for (var i=0; i<lis.length; i++) {
//為單個元素新增點選事件
    lis[i].onclick = function() {
//這裡進行判斷 如果當前字型顏色為紅色  則更改字型顏色
        if(this.style.color = "red") {
            this.style.color = "black";
        }
        else {
            this.style.color = "red";
        }
    };
}

練習6-2:滑鼠懸停事件,滑鼠移動導致顏色變化

javascript程式碼:

var lis = document.querySelectorAll("#ul>li");
for(var i=0; i<lis.length; i++) {
//:hover 也可以達到效果
//滑鼠懸停
    lis[i].onmouseover = function() {
        this.className = "orange";
    };
//滑鼠移出
    lis[i].onmouseout = function() {
    this.className = "";
    };

//另一種方式實現
/*lis[i].onmouseover = function() {
  var temp = document.querySelector("#ul>.orange");  
temp.className = "";
//滑鼠在上時 此時顏色為橙色 this.className = "orange"; }*/

練習6-3:點選塊更改背景顏色

HTML程式碼:

<div id="div1" class="redtooarange" index="jds">
又是美好的一天
</div>
<input type="button" id="btn1" value="移出div中的index屬性/>

CSS程式碼:

#div1 {
    font-family: "微軟雅黑";
    font-size: 40px;
    width: 300px;
    height: 100px;
    text-align: center;
    line-height: 100px;
}
.redtooarange{
    color: red;
    background-color: yellow;
}
.orange_red {
    color: yellow;
    background-color: red;
}

javascript程式碼:

方法a

var obj = document.getElementById("div1");
obj.onclick = function() {
//如果點選字型樣式為紅色   則改變字型為黃  背景為紅  
    if(this.style.color = "red") {
        this.style.color = "yellow";
        this.style.backgroundColor = "red";
    }
    else {
//反之 字型變為紅色  背景變為黃色
        this.style.color = "red";
        this.style.backgroundColor = "yellow";
    }
}

方法b

var obj=document.getElementById("div1");
obj.onclick=function(){
    if(this.className == "redtooarange") {
        this.className = "orange_red";
    }
    else {
        this.className = "redtooarange";
    }
}

移除屬性

//獲取按鈕物件
var btn = document.getElementById("btn1");
//按鈕點選事件 btn.onclick = function() {
//獲取div塊元素 var dd = document.getElementById("div1");
//刪除div的屬性 dd.removeAttribute("index"); };

練習6-4:對網頁中的文字進行操作

HTML程式碼:

<div id="div1">
    操作內容
</div>
<input type="button" id="btn1" value="修改內容" />
<ul>              
    <li>西瓜</li>   
    <li>葡萄</li>   
</ul>
<input type="button" id="btn2" value="新增到 西瓜前" />
<input type="button" id="btn3" value="新增到 葡萄後" />             

CSS程式碼:

#div1{                       
    width: 400px;            
    height: 400px;           
    border: 1px solid black; 
}                            

div塊中內容的修改:

var btn = document.getElementById("btn1");
btn.onclick = function() {
//獲取div塊的物件
    var dd = document.getElementById("div1");
//標籤內部的內容
    dd.innerHTML = "修改了內容";
//追加內容
    dd.innerHTML += ”追加的內容";
//追加含有HTML標籤的內容
    dd.innerHTML += "<br><span>這是追加的span標籤</span>";
};

在ul塊前面新增li元素:

//用來計數的
var no = 0;
var btn2 = document.getElementById("btn2");
btn2.onclick = function() {
     //獲取ul列表物件
    var li = document.createElement("li");
    li.innerHTML = "新增的li" + no;
    no++;
    li.style.color = "green";
    var ul = document.querySelector("ul");
//找到要插入的位置的標籤物件
    var oli = document.querySelector("ul>li");

//將元素插入到指定位置
    ul.insertBefore(li, oli);

在ul列表後新增li塊元素:

var btn3 = document.getElementById("btn3")'
btn3.onclick = function() {
    var ul = document.querySelector("ul");
    ul.innerHTML += "<li>香蕉</li>";
//建立標籤物件
    var t = document.createElement("li");

//對物件的操作
    t.innerHTML = "水蜜桃";
    t.style.color = "red";
    t.style.backgroundColor = "green";
    var ul  = document.querySelector("ul");

//把建立的物件,新增到父級元素的末尾
    ul.appendChild(t);
};

練習6-5:點選列表中的圖片,顯示到指定區域

HTML程式碼:

<div id="container">                                                         
    <div><img src="img/Desert.jpg" width="500" height="400" id="img1"/></div>
    <ul>                                                                     
        <li><img src="img/Desert.jpg"/></li>                                 
        <li><img src="img/Hydrangeas.jpg"/></li>                             
        <li><img src="img/Jellyfish.jpg"/></li>                              
        <li><img src="img/Koala.jpg"/></li>                                  
        <li><img src="img/Lighthouse.jpg"/></li>                             
    </ul>        
</div>                                                                                                   

CSS程式碼:

*{                      
    padding: 0;         
    margin: 0;          
}                       
#container{             
    width: 700px;       
    height: 600px;      
    text-align: center; 
    margin: 0 auto;     
}                       
ul{                     
    list-style: none;   
}                       
ul>li{                  
    float: left;        
    width: 100px;       
    height:80px ;       
    margin-left: 40px;  
}                       
ul img{                 
    width: 100px;       
    height:80px;        
}                       

javascript程式碼:

//獲取所有圖片 並返回集合
var imgs= document.querySelectorAll("ul img");   
//遍歷集合中每個圖片元素
for(var i=0;i<imgs.length;i++){               
//對每個圖片物件進行事件繫結   
    imgs[i].onclick=function(){         
//存放當前被點選圖片的路徑         
        var src=this.src;                        
//獲取顯示區域的物件
        var obj=document.getElementById("img1"); 
//進行路徑賦值
        obj.src=src;                             
    };                                           
}