?? DOM,全稱 Document Object Model,文檔對(duì)象模型。
?? dom 對(duì)象就是將標(biāo)簽封裝成的 js 對(duì)象,而 JavaScript 中內(nèi)置提供的 document 對(duì)象就是將 html 標(biāo)簽封裝成的 js 對(duì)象。我們可以利用 document 對(duì)象的方法來(lái)找到某個(gè) html標(biāo)簽。例如,下面的代碼中就是通過(guò) document 對(duì)象的 getElementById()方法找到 html 文檔中 id 為 t1 的標(biāo)簽,并將其封裝對(duì)象返回給 a1。
var a1 = document.getElementById("t1");
?? DOM 操作其實(shí)就是兩步,先找到需要操作的標(biāo)簽的對(duì)象,然后對(duì)對(duì)象進(jìn)行操作。
// 根據(jù)id屬性獲取元素(返回一個(gè)對(duì)象)document.getElementById(id值)// 根據(jù)name屬性獲取標(biāo)簽(返回多個(gè)對(duì)象(數(shù)組))document.getElementsByName(name值);// 根據(jù)標(biāo)簽名獲取元素(返回多個(gè)對(duì)象(數(shù)組))document.getElementsByTagName(標(biāo)簽名稱)// 根據(jù)class屬性獲取標(biāo)簽(返回多個(gè)對(duì)象(數(shù)組))document.getElementsByClassName(類名)
獲取文本 OR 設(shè)置文本元素節(jié)點(diǎn).innerHTML // 可識(shí)別標(biāo)簽元素節(jié)點(diǎn).innerText // 不識(shí)別標(biāo)簽,將標(biāo)簽當(dāng)做文本處理
??可以使用dom對(duì)象的 innerHTML 屬性和 innerText 屬性,innerHTML 可以識(shí)別內(nèi)容中的標(biāo)簽;而 innerText 是識(shí)別純文本,即使有標(biāo)簽,innerText 也是將標(biāo)簽當(dāng)做文本處理的。
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的效果:
元素節(jié)點(diǎn).屬性名 //例如 元素節(jié)點(diǎn).value 獲取 value 屬性的值
元素節(jié)點(diǎn).屬性名.樣式名
??style 屬性比較特殊,想要修改 style 屬性不像其他屬性那樣直接賦值,而是需要對(duì)具體的樣式屬性進(jìn)行修改,比如,下面代碼將元素節(jié)點(diǎn)的背景顏色修改為紅色,浮動(dòng)設(shè)置為右浮動(dòng)。
dom.style.backgroundColor="red";dom.style.cssFloat="right";// 注意:// 如果使用的是IE瀏覽器設(shè)置浮動(dòng)使用styleFloat// 如果使用的不是IE瀏覽器,比如Chrome,那么設(shè)置浮動(dòng)使用cssFloat
注意:在CSS中背景顏色的樣式屬性名是 background-color,浮動(dòng)的樣式屬性名是 float,而JavaScript中屬性名會(huì)不一樣,這個(gè)不要求背下來(lái),再需要用的時(shí)候去找CSS幫助文檔中會(huì)告訴我們?cè)贘avaScript中使用時(shí)的屬性名。比如,下面的 background-color 屬性的說(shuō)明中有對(duì)應(yīng)的腳本特性為 backgroundColor,這個(gè)腳本特性就是我們?cè)贘avaScript中需要寫(xiě)的屬性名。
Java1.8、JS、Html5、Css、SQL、正則表達(dá)式、jquery、W3CSchool中文幫助文檔下載地址
??在學(xué)習(xí)HTML標(biāo)簽的時(shí)候,遇到了一些以 on 開(kāi)頭的屬性,這些屬性都是事件,可以使用在標(biāo)簽定義時(shí)為標(biāo)簽添加一個(gè)事件,但是這種事件的綁定是靜態(tài)的綁定,沒(méi)辦法變更事件,使用JavaScript可以實(shí)現(xiàn)動(dòng)態(tài)綁定,可以根據(jù)需要綁定事件、解除事件等。
元素節(jié)點(diǎn).事件名=方法名()
<body><button type="button" onclick="javascript:test4();">測(cè)試事件1</button><button type="button" id="b1">測(cè)試事件2</button><script type="text/javascript">// 事件function test4() {var dom = document.getElementById("b1");dom.onclick=function(){alert("T_T");}}</script></body>
??在綁定事件的時(shí)候,可以使用上面的方法,也可以使用添加或移除事件監(jiān)聽(tīng)的方法進(jìn)行綁定或解綁,事件監(jiān)聽(tīng)的好處在于可以綁定多個(gè)事件。但實(shí)際上不太常用,一般會(huì)用JQuery來(lái)進(jìn)行事件監(jiān)聽(tīng)
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);}
來(lái)源:https://www.icode9.com/content-1-835301.html
聯(lián)系客服