js DOM(一)注冊事件、修改標簽屬性和樣式


錄:

    1.DOM的概念
    2.為元素注冊事件
    3.案例:點擊按鈕顯示圖片及設置寬高
    4.案例:點擊按鈕設置p標簽的文本內容
    5.案例:點擊按鈕修改超鏈接的地址及熱點文字
    6.案例: 點擊按鈕設置多個p標簽內容
    7.案例:點擊按鈕修改圖片的alt和title屬性
    8.案例: 點擊按鈕修改多個文本框的值
    9.案例:點擊圖片修改自身的寬高
    10.案例:按鈕的排他功能
    11.案例:點小圖邊大圖
    12.案例:點擊按鈕選擇性別和興趣
    13.案例:下拉選擇框
    14.案例:文本域
    15.案例:點擊按鈕設置div的樣式
    16.案例:點擊按鈕,顯示或隱藏div
    17.案例:通過類樣式class設置div樣式
    18.案例:通過類樣式class設置div顯示或隱藏
    19.點擊div改變其背景色(隨機)

 

1.DOM的概念    <--返回目錄
    * JavaScript分三部分
        - ECMAScript標准:JS的基本語法
        - DOM:Document object Model  文檔對象模型--操作頁面的元素
        - BOM:Browser Object Model 瀏覽器對象模型--操作的是瀏覽器
        
    * DOM文檔對象模型--操作頁面元素
        - 文檔document:把一個html文件看成一個文檔,由於萬物皆對象,所以把這個文檔看成是一個對象
        - 元素element:html頁面的每個標簽,都是一個元素,每個元素都可以看成一個對象
        - 節點node:頁面中所有的內容都是節點,標簽,屬性,文本
        - 屬性

2、為元素注冊事件    <--返回目錄
    * 事件:就是一件事,有觸發、響應、事件源
        按鈕被點擊,彈出對話框
        按鈕-->事件源
        點擊-->事件名字
        被點了-->觸發了
        彈框了-->響應
        
    * 點擊按鈕,彈出對話框,代碼1:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
    <input type="button" value="彈框" onclick="alert('哈哈哈~')"/>
</body>
</html>    

    * 點擊按鈕,彈出對話框,代碼2:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<input type="button" value="彈框" id="btn" onclick="fun()"/>
<script type="text/javascript">
    function fun(){
        alert("嘎嘎嘎~");
    }
</script>
</body>
</html>

    * 點擊按鈕,彈出對話框,代碼3:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<input type="button" value="彈框" id="btn"/>
<script type="text/javascript">
    document.getElementById("btn").onclick = function(){
        alert("呵呵呵~");
    };
</script>
</body>
</html>

 

3、案例:點擊按鈕顯示圖片及設置寬高    <--返回目錄
  點擊按鈕顯示圖片, 點擊按鈕的時候設置img標簽的src屬性

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<input type="button" value="按鈕" id="btn"/>
<img src="" id="imgId"/>
<script type="text/javascript">
    document.getElementById("btn").onclick=function(){
        var ele = document.getElementById("imgId");
        ele.src="a.jpg";
        ele.width="300";//注意,img標簽的width的值300沒有單位px
        ele.height="280";
    };
</script>
</body>
</html>

 

 4、案例:點擊按鈕設置p標簽的文本內容    <--返回目錄
  凡是成對的標簽,中間的文本內容,設置的時候,都使用innerText屬性

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<input type="button" value="按鈕" id="btn"/>
<p id="pId"></p>
<script type="text/javascript">
    document.getElementById("btn").onclick=function(){
        var ele = document.getElementById("pId");
        ele.innerText="文本";
    };
</script>
</body>
</html>    

 

5、案例:點擊按鈕修改超鏈接的地址及熱點文字    <--返回目錄
  熱點文字:即<a>熱點文字</>

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<input type="button" value="按鈕" id="btn"/>
<a href="" id="aId"></a>
<script type="text/javascript">
    document.getElementById("btn").onclick=function(){
        var ele = document.getElementById("aId");
        ele.href="http://www.baidu.com";  //注意http不可以省略
        ele.innerText="百度";
    };
</script>
</body>
</html>

 

6、案例:點擊按鈕設置多個p標簽內容    <--返回目錄
  如何獲取某個div里面的所以p標簽
        var eles = document.getElementById("div1Id").getElementsByTagName("p");

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<input type="button" value="按鈕" id="btn"/>
<div id="div1Id">
    <p>aaaa</p>
    <p>bbbb</p>
    <p>cccc</p>
</div>
<div id="div2Id">
    <p>aaaa</p>
    <p>bbbb</p>
    <p>cccc</p>
</div>
<script type="text/javascript">
    document.getElementById("btn").onclick=function(){
        var eles = document.getElementById("div1Id").getElementsByTagName("p");
        for(var i=0;i<eles.length;i++){
            eles[i].innerText="p標簽文本";
        }
    };
</script>
</body>
</html>

 

7、案例:點擊按鈕修改圖片的alt和title屬性    <--返回目錄
  title:鼠標懸停在圖片上時顯示的信息
  alt:圖片掛了時顯示的信息

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<input type="button" value="按鈕" id="btn"/>
<img src="a.jpg" width="300" height="280" />
<script type="text/javascript">
    document.getElementById("btn").onclick=function(){
        var ele = document.getElementsByTagName("img")[0];
        ele.alt="圖片掛了時的信息";
        ele.title="標題";
    };
</script>
</body>
</html>

 

8、案例:點擊按鈕修改多個文本框的值    <--返回目錄

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<input type="button" value="按鈕" id="btn"/><br/>
<input type="text"/><br/>
<input type="text"/><br/>
<input type="text"/>
<script type="text/javascript">
    document.getElementById("btn").onclick=function(){
        var eles = document.getElementsByTagName("input");
        for(var i=0;i<eles.length;i++){
            if(eles[i].type=="text"){
                eles[i].value="文本框輸入的值";
            }else if(eles[i].type=="button"){
                eles[i].value="我是個按鈕";            }
        }
    };
</script>
</body>
</html>

 

9、案例:點擊圖片修改自身的寬高    <--返回目錄
  對綁定事件的元素自身進行修改,可以使用this

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<img src="a.jpg" width="500px"/>
<script type="text/javascript">
    var ele = document.getElementsByTagName("img")[0];
    ele.onclick=function(){
        this.width="300";//對綁定事件的元素自身進行修改,可以使用this
    };
</script>
</body>
</html>

 

10、案例:按鈕的排他功能    <--返回目錄
  需求:3個按鈕,按鈕的默認value值是沒被點,點擊按鈕,該按鈕value值為被點了;
  點擊另外一個按鈕,該按鈕value值為被點了,其他的value值變成默認值。
  做兩件事:第一、將所有按鈕value值設置為"沒被點";第二、將當前點擊的按鈕的value值設置為"被點了"

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<input type="button" value="沒被點" style="background-color: #ddd"/>
<input type="button" value="沒被點" style="background-color: #ddd"/>
<input type="button" value="沒被點" style="background-color: #ddd"/>
<script type="text/javascript">
    var eles = document.getElementsByTagName("input");
    for(var i=0;i<eles.length;i++){
        eles[i].onclick=function(){
            //將所有按鈕value值設置為"沒被點"
            for(var j=0;j<eles.length;j++){
                eles[j].value="沒被點";
                eles[j].style="background-color:#ddd";
            }
            this.value="被點了";//注意:這里this不能用eles[i],因為為所有按鈕注冊完事件后i=3了
            this.style="background-color:red";
        };
    }
</script>
</body>
</html>

 

11、案例:點小圖變大圖    <--返回目錄
   <a href="a.jpg"><img src="a-small.jpg"></a>

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<a href="a.jpg" id="aId"><img src="a-small.jpg" id="imgId"></a>
<script type="text/javascript">
    //點擊圖片標簽,設置圖片標簽的src路徑為超鏈接中大圖的路徑
    document.getElementById("imgId").onclick=function(){
        this.src=document.getElementById("aId").href;
        //return false;//頁面url不變
    };
</script>
</body>
</html>

 

12、案例:點擊按鈕選擇性別和興趣    <--返回目錄
  document.getElementById().checked=true;  //被選中
  true可以用"checked"替換,但是瀏覽器也會把"checked"解析成true

 

13、案例:下拉選擇框    <--返回目錄
  document.getElementById().selected=true;  //被選中

 

14、案例:文本域    <--返回目錄
    * disabled="disabled"
    * readonly="readonly"
    * document.getElementById().value="哈哈";//推薦使用這種方法,改變文本域內容
    * document.getElementById().innerText="呵呵";//也可以改變文本域內容

15、案例:點擊按鈕設置div的樣式    <--返回目錄

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<input type="button" id="btn" value="按鈕"/>
<div id="divId"></div>
<script type="text/javascript">
    document.getElementById("btn").onclick=function(){
        document.getElementById("divId").style.width="200px";
        document.getElementById("divId").style.height="200px";
        //經驗:css中background-color在js中寫成backgroundColor
        document.getElementById("divId").style.backgroundColor="hotpink";
        //document.getElementById("divId").style="width:200px;height:200px;background-color:green";
    };
</script>
</body>
</html>

 

16、案例:點擊按鈕,顯示或隱藏div    <--返回目錄

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
</head>
<body>
<input type="button" id="btn" value="顯示" />
<div id="divId"></div>
<script type="text/javascript">
    var ele = document.getElementById("btn");
    ele.onclick=function(){
        var divEle = document.getElementById("divId");
        if(this.value=="顯示"){
            divEle.style="width:200px;height:200px;background-color:green";
            //divEle.style.display=true;
            divEle.style.display="block";
            this.value="隱藏";
        }else if(this.value=="隱藏"){
            divEle.style.display="none";
            this.value="顯示";
        }
    };
</script>
</body>
</html>

 

17、案例:通過類樣式class設置div樣式    <--返回目錄

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
    <style type="text/css">
        .cls1{
            width:200px;
            height: 200px;
            background-color: yellow;
        }
        .cls2{
            width:300px;
            height: 300px;
            background-color: hotpink;
            border:2px solid blue;
        }
    </style>
</head>
<body>
<input type="button" id="btn" value="按鈕" />
<div id="divId" class="cls1"></div>
<script type="text/javascript">
    var ele = document.getElementById("btn");
    ele.onclick=function(){
        document.getElementById("divId").className="cls2";
    };
</script>
</body>
</html>

 

18、案例:通過類樣式class設置div顯示或隱藏    <--返回目錄

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>標題</title>
    <style type="text/css">
        div{
            width:200px;
            height: 200px;
            background-color: yellow;
        }
        .cls{
            display: none;
        }
    </style>
</head>
<body>
<input type="button" id="btn" value="隱藏" />
<div id="divId" ></div>
<script type="text/javascript">
    var ele = document.getElementById("btn");
    var divEle = document.getElementById("divId");
    ele.onclick=function(){
        if(divEle.className != "cls"){//div為顯示狀態
            this.value="顯示";
            divEle.className="cls";
        }else{//div為隱藏狀態
            this.value="隱藏";
            divEle.className="";
        }
    };
</script>
</body>
</html>

 

19.點擊div改變其背景色(隨機)    <--返回目錄

<!DOCTYPE html>
<html>
<head>
<title>標題</title>
<style type="text/css">
#box {
    background-color: #342;
    width: 200px;
    height: 200px;
}
</style>
</head>
<body>

    <div id="box"></div>

</body>
<script type="text/javascript">
    function getRandomStr(length) {
        if (!length) length = 1
        const strArray = ['0', '1', '2', '3', '4', '5', '6' ,'7' ,'8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
        let str = ''
        for (let i = 0; i < length; i++) {
            str += strArray[parseInt(Math.random() * 16)]
        }
        return str
    }

    function randomColor(ele) {
        const color = '#' + getRandomStr(6)
        console.log(`color=${color}`)
        ele.style.backgroundColor = color
    }

    const ele = document.getElementById('box')
    ele.onclick = function() {
        randomColor(this)
    }
</script>
</html>

---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM