? ? DOM中的選擇器
????1.getElementById(id)? ? ?? ?//獲取指定元素的ID元素
? ? 2.getElementsByTagName()? ? //獲取相同元素的節(jié)點列表沽翔,通過標簽名選擇元素骂澄,返回值是一個數(shù)組
? ? 3.getElementsByName()?? ?? ?//通過name值獲取元素软能,返回值是數(shù)組蟹演,通常用來獲取有name的input的值
? ? 4.getElementsByClassName() ?//通過class名獲取元素,返回值是數(shù)組n
? ? ES5選擇器:
? ? document.querySelectorAll();? ? //強大到超乎想象响牛,支持IE8+滥朱。ECMAScript借鑒了jQuery選擇器的
? ? //返回一個數(shù)組虱疏,哪怕只有一個元素
? ? document.querySelector();
? ? 高級選擇器
????對象.childNodes?? ??? ??? ???//獲取當前元素節(jié)點的所有子節(jié)點? ??
? ? 對象.ownerDocument?? ??? ??? //獲取該節(jié)點的文檔根節(jié)點妆兑,相當與 document
?? ?對象.firstChild? ? ?? ?? ? ??//獲得第一個子節(jié)點魂拦。(IE7/8非空白節(jié)點,可能是注釋節(jié)點)
?? ?對象.firstElementChild ? ? ? //獲得第一個非空白的子節(jié)點搁嗓。(IE7/8不支持)
?? ?對象.lastChild? ? ??? ???? ??//獲得最后一個子節(jié)點(IE7最后一個元素節(jié)點芯勘,IE8最后一個非空白節(jié)點,可能是注釋節(jié)點)
?? ?對象.lastElementChild ? ? ? ?//獲得最后一個非空白的子節(jié)點腺逛。(IE7/8不支持)
?? ?對象.nextSibling? ?? ??? ?? ?//獲得下一個兄弟節(jié)點荷愕。(包含空白節(jié)點和注釋,IE7/8包括注釋節(jié)點棍矛,不包括空白節(jié)點)
?? ?對象.nextElementSibling ? ? ?//獲得下個兄弟節(jié)點安疗。(IE7/8不支持)
?? ?對象.previousSibling?? ?? ? ?//獲得上一個兄弟節(jié)點。(包含空白節(jié)點和注釋够委。IE7/8包括注釋節(jié)點荐类,不包括空白節(jié)點)
?? ?對象.prveiousElementSibling ?//獲得上一個兄弟節(jié)點。(IE7/8不支持)
DOM元素的增刪改查
????查詢:選擇器茁帽;
?? ?創(chuàng)建:createElement() ?配合 ?appendChild()? ? 將創(chuàng)建好的元素掉冶,插入到某個標簽內(nèi)的最后
?? ?刪除:removeChild()??配合??parentNode
?? ??? ??? ?? ? 元素.remove()? ? 直接刪除當前元素
?? ?document.body.removeChild(div);
? ??修改: outerHTML? ? ? ? var od = document.querySelector("#box");
? ? ?od.outerHTML = "<span class='"+ od.className +"'>"+ od.innerHTML +"</span>";
? ? DOM屬性的操作
? ? 也就是對DOM進行增刪改查
? ? DOM的屬性操作脐雪,增刪改查
? ? 什么是元素的屬性?class就是元素的屬性恢共,寫在元素內(nèi)的所有東西都是元素的屬性战秋,比如link的href,img的src等
? ? 元素的屬性是什么讨韭,分為兩種脂信,一種叫內(nèi)置屬性癣蟋,一種叫非內(nèi)置屬性。
?內(nèi)置屬性可以直接通過點"."進行操作
? ? tagName ? ? ? ? ? ? ? //返回值是當前元素的標簽名
? ? innerHTML/innerText ?//返回值是當前元素的內(nèi)容
? ? id?? ??? ??? ??? ?? ? //返回值是當前元素的ID
? ? title?? ??? ??? ?? ? ?//獲取title的標簽值狰闪,這個title是從document中獲取的
? ? className?? ??? ?? ? ?//返回值是當前元素的class
? ? href?? ??? ??? ?? ? ? //返回值是當前的href的值
? ? 以上這些屬性既可以獲取疯搅,也可以設(shè)置
? ? 非內(nèi)置屬性需要通過一些節(jié)點的方法進行操作,注意:節(jié)點的方法埋泵,前綴一定是節(jié)點
? ? getAttribute()?? ?? ? //獲取 元素的屬性
? ? setAttribute()?? ?? ? //設(shè)置/修改 元素的屬性幔欧,低版本的IE不兼容;接收兩個參數(shù),屬性名和屬性值
? ? removeAttribute()? ? ?//刪除 元素的屬性丽声,低版本的IE不兼容