Web前端-JavaScript--Dom

Dom概述

JavaScript三大核心:
    ECMAScript(基礎語法)

    DOM  Document Object  Model  (文檔對象模型)

    BOM Browser  Object Model (瀏覽器對象模型)
        跟瀏覽器本身操作有關的方法 都在BOM裏面

        BOM最大的對象是 window


什麼是DOM:
    所謂  DOM就是能夠操作頁面數據的一個對象總和
    這個對象就是document對象
    頁面所有的文檔 都歸DOM來管

    DOM最大的對象是  document

    document就是頁面所有標籤的祖先元素
    通過document能夠對頁面的任何一個標籤進行增刪改查


JS是一個受事件驅動的 腳本語言
    js的功能要想執行 必須是結合事件來執行的

    簡單來說就是
        在什麼時候  做什麼事情

        所以js都是事件結合代碼來操作的

        那麼要想學習dom就先要學習事件

        先學習在什麼時候(事件)

        再學習 做什麼事情(js功能  dom操作)

初步使用

JS的事件時DOM的前提
    就是一般DOM的操作都要放到指定的事件裏面

   JS的事件分爲三要素:
    事件源
        誰觸發了事件

    事件名稱
        觸發了什麼事件

    事件驅動函數
        要做什麼事情

    距離:
        按動燈的開關 把燈關掉

     事件源:
        燈的開關

      事件名稱
        按開關的事件

      事件驅動函數
            燈關閉的代碼

    寫個例子:
        按鈕點擊時 彈出框 顯示被點擊了
  事件三要素

//    事件源   找到按鈕對象
    var btn=document.getElementById("btn"); //通過標籤的id找到這個按鈕對象
//    獲取box對象
    var box=document.getElementById("box");
//    console.log(box);
    
    
//    console.log(btn);

    //事件名稱  (js已經提供好了 一堆事件 供我們直接使用)
    //點擊事件
    btn.onclick=function () {
//        事件驅動函數  寫點擊時要執行的代碼(可以是一句代碼 可以很多句代碼)

//        alert("你點我幹嘛?");

//        給box修改背景顏色(橫線在 js中變成駝峯)
        box.style.backgroundColor="blue";
    }

DOM中獲取頁面元素有五種方式:

1.document.getElementById("標籤的id")
    根據標籤的id獲取標籤的元素對象

2.document.getElementsByTagName("標籤名");
    根據標籤名獲取好多個元素對象 放入一個僞數組裏面
    直接根據標籤獲取元素 但是返回的元素可能有好多個
    所以一起放入一個數組中(是個僞數組)

    這個方法 就是返回僞數組!!!!!!!!!!!!!
    無論找到的元素有幾個  0個 1個 1萬個
    都是一樣的  就是返回僞數組
    所以證明返回的元素不能直接操作
    必須用索引值功能 取出自己想要的元素 然後再進行操作!!!!!!!

var p=document.getElementsByTagName("p");

//    console.log(p);
//    p.style.color="red";


3.document.getElementsByClassName("標籤的class名字");
       返回值跟上一個一樣 也是僞數組!!!!!!
       此方法有兼容問題(後面講)


var poxArr=document.getElementsByClassName("pox");
   console.log(poxArr);

   poxArr[0].style.backgroundColor="orange";
   poxArr[1].style.backgroundColor="orange";

4.document.querySelector("css選擇器")
    根據css選擇器的格式找到單個元素!!!!!
    如果選擇器關聯的是一堆元素 那麼只找到第一個

var ul=document.querySelector("#box>ul");
 console.log(ul);
    var divPox=document.querySelector("div.pox");
    console.log(divPox);
    
var li=document.querySelector("li");
    console.log(li);//只找到第一個li


5.document.querySelectorAll("css選擇器")
    根據css選擇器找到一堆元素  返回僞數組!!!!!!!!!!!
  var liArr=document.querySelectorAll("ul>li");
    for(var i=0;i<liArr.length;i++){
        liArr[i].style.color="red";
    }
僞數組:
    具有索引值功能 還有length屬性
    但是沒有Array的那些方法  就是僞數組(看起來像是數組  但不是真正的Array數組)

js給頁面元素設置樣式的方式:

1.元素對象.style.css屬性名(橫線變駝峯)="css屬性值";
    這種方式設置的樣式 是行內樣式 所以權值比較高

    如果是一兩個簡單樣式 用這種方式

    如果樣式比較多 建議用下面的操作的方式


2.元素對象.className="類名";
    這個類名是在style裏面定義好樣式的類名
    手動爲當前元素設置這個類名  也就生效類名所對應的樣式


 3.元素對象.className="";
    刪除元素的class  把class這是爲空的 表示沒有class
 <style>
        #box{
            width: 200px;
            height: 200px;
            background-color: orange;
        }
        .pox{
            color:blue;
            font-size: 20px;
            text-align: center;
            line-height:200px;
            padding: 50px;
        }
        
    </style>
</head>
<body>
<button>設置樣式</button>
<button>刪除class樣式</button>
<div id="box">
    大雪紛飛
</div>
<script>
    var btn=document.getElementsByTagName("button")[0];//直接取第0號元素!!!!
    var btn1=document.getElementsByTagName("button")[1];
    var box=document.getElementById("box");
 btn.onclick=function () {
    /*    box.style.color="blue";
        box.style.backgroundColor="hotpink";*/

        box.className="pox";

    };

    btn1.onclick=function () {
        box.className="";
    }
    
</script>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章