DOM簡介
是什么,?
?? DOM,全稱 Document Object Model,,文檔對象模型,。
做什么,?
?? dom 對象就是將標簽封裝成的 js 對象,而 JavaScript 中內置提供的 document 對象就是將 html 標簽封裝成的 js 對象,。我們可以利用 document 對象的方法來找到某個 html標簽,。例如,下面的代碼中就是通過 document 對象的 getElementById()方法找到 html 文檔中 id 為 t1 的標簽,,并將其封裝對象返回給 a1,。
var a1 = document.getElementById("t1");
怎么做?
?? DOM 操作其實就是兩步,,先找到需要操作的標簽的對象,,然后對對象進行操作。
獲取元素
// 根據id屬性獲取元素(返回一個對象)
document.getElementById(id值)
// 根據name屬性獲取標簽(返回多個對象(數組))
document.getElementsByName(name值);
// 根據標簽名獲取元素(返回多個對象(數組))
document.getElementsByTagName(標簽名稱)
// 根據class屬性獲取標簽(返回多個對象(數組))
document.getElementsByClassName(類名)
操作元素
處理元素文本內容
獲取文本 OR 設置文本
元素節(jié)點.innerHTML // 可識別標簽
元素節(jié)點.innerText // 不識別標簽,,將標簽當做文本處理
??可以使用dom對象的 innerHTML 屬性和 innerText 屬性,,innerHTML 可以識別內容中的標簽;而 innerText 是識別純文本,,即使有標簽,,innerText 也是將標簽當做文本處理的。
function test21() {
var dom1 = document.getElementById("t1");
dom1.innerText="<input type = 'text' />";
}
function test22() {
var dom = document.getElementById('t1');
dom.innerHTML="<input type = 'text' />";
}
??innerText的效果: ??innerHTML的效果:
處理元素屬性
元素節(jié)點.屬性名 //例如 元素節(jié)點.value 獲取 value 屬性的值
處理元素樣式
元素節(jié)點.屬性名.樣式名
??style 屬性比較特殊,,想要修改 style 屬性不像其他屬性那樣直接賦值,,而是需要對具體的樣式屬性進行修改,比如,,下面代碼將元素節(jié)點的背景顏色修改為紅色,,浮動設置為右浮動。
dom.style.backgroundColor="red";
dom.style.cssFloat="right";
// 注意:
// 如果使用的是IE瀏覽器設置浮動使用styleFloat
// 如果使用的不是IE瀏覽器,,比如Chrome,,那么設置浮動使用cssFloat
注意:在CSS中背景顏色的樣式屬性名是 background-color,浮動的樣式屬性名是 float,,而JavaScript中屬性名會不一樣,,這個不要求背下來,再需要用的時候去找CSS幫助文檔 中會告訴我們在JavaScript中使用時的屬性名,。比如,,下面的 background-color 屬性的說明中有對應的腳本特性為 backgroundColor,這個腳本特性就是我們在JavaScript中需要寫的屬性名,。 Java1.8,、JS、Html5,、Css,、SQL、正則表達式,、jquery,、W3CSchool中文幫助文檔下載地址
處理事件
事件綁定
??在學習HTML標簽的時候,,遇到了一些以 on 開頭的屬性,這些屬性都是事件,,可以使用在標簽定義時為標簽添加一個事件,,但是這種事件的綁定是靜態(tài)的綁定,沒辦法變更事件,,使用JavaScript可以實現動態(tài)綁定,,可以根據需要綁定事件、解除事件等,。
元素節(jié)點.事件名=方法名()
<body>
<button type="button" onclick="javascript:test4();">測試事件1</button>
<button type="button" id="b1">測試事件2</button>
<script type="text/javascript">
// 事件
function test4() {
var dom = document.getElementById("b1");
dom.onclick=function(){
alert("T_T");
}
}
</script>
</body>
??在一開始點擊測試事件2按鈕的時候不會彈出消息提示框,,因為測試事件2這個按鈕在定義時并沒有添加事件,而點擊測試事件1按鈕之后再點集測試事件2,,會彈出消息提示框,,因為點擊測試事件1按鈕之后為測試事件2按鈕添加了點擊事件。
事件監(jiān)聽
??在綁定事件的時候,,可以使用上面的方法,,也可以使用添加或移除事件監(jiān)聽的方法進行綁定或解綁,事件監(jiān)聽的好處在于可以綁定多個事件 ,。但實際上不太常用,,一般會用JQuery來進行事件監(jiān)聽
function f() {
alert("T_T");
}
// 綁定事件
function test4() {
var dom = document.getElementById("b1");
dom.addEventListener("click", f);
}
// 解除事件
function test5() {
var dom = document.getElementById("b1");
dom.removeEventListener("click", f);
}
來源:https://www./content-1-835301.html