js DOM基礎(chǔ)

為了方便使用,下面的例子中全部都是用ul li 來寫的

1、getElementsByTagName("") 獲取標(biāo)簽四瘫,得到的是類數(shù)組,并不是真正意義上的數(shù)組

2插掂、getElementsByClassName("") 同上

3、getAttribute("屬性");

獲取屬性腥例,因為屬性是存在于標(biāo)簽里辅甥,一般需要先獲取標(biāo)簽,

document.getElementsByTagName("a")[0]

4燎竖、setAttribute("屬性"璃弄,要設(shè)置的內(nèi)容);

element.setAttribute(attributename,attributevalue)

這里的屬性一般遇見的有src构回、href谢揪、title、target

5捐凭、childNodes 獲取的是所有子節(jié)點,其中也包括文本節(jié)點和元素節(jié)點凳鬓。

奇怪的是它在IE6-8使用是不存在問題茁肠,但是在其他瀏覽器里會有問題,因此

我們會用【nodeType】來判斷節(jié)點類型缩举,舉個例子

var oUl=document.getElementById("ul1");

for(var i=0;i<oUl.childNodes.length;i++){

? ? ? ?if(oUl.childNodes[i].nodeType ==1){

? ? ? ? ? ? oUl.childNodes[i].style.background="green"

? ? ? ? ?}

}

    第一個元素節(jié)點

    第二個元素節(jié)點

    第三個元素節(jié)點

    我們需要知道如果 nodeType ==3,它表示的是文本節(jié)點垦梆,而文本節(jié)點是無法加樣式的;

    如果nodeType ==1仅孩,則是元素節(jié)點托猩,而我們也只要元素節(jié)點,所以在循環(huán)里加判斷辽慕,就不會存在兼容問題京腥。

    當(dāng)然,我們可以使用【children】,它僅僅獲取的是元素節(jié)點溅蛉,在高版本瀏覽器或IE瀏覽器下都可以使用公浪,所以上述例子中直接把childNode改成children就可以了,也不需要給其加判斷船侧,所以建議直接用children欠气。

    6、firstChild????獲取的是第一個子節(jié)點镜撩,這個如果直接使用也存在兼容問題预柒,它適用于IE6--8,所以一般在高版本瀏覽器下使用的是:firstElementChild。同樣的使用時宜鸯,需要加個判斷憔古,還是舉例:

    var oUl=document.getElementById("ul1");

    if(oUl.firstElementChild){

    ? ? ? ? // 適配高版本瀏覽器

    ? ? ? oUl.firstElementChild.style.background="red"

    }else{

    ? ? ?// IE6-8適用

    ? ? ?oUl.firstChild.style.background="red"

    }

    同理肯定還有l(wèi)astChild/lastElementChild,用法一樣。

    7顾翼、parerntNode??獲取父節(jié)點

    ?寫法為:子元素.parerntNode

    *offsetParent??它也可以獲取父節(jié)點投放,它有一定的局限性,因為如果改變了定位的樣式适贸,那么獲取到的父節(jié)點就會不一樣灸芳,比如父節(jié)點去掉定位,那么子元素的父節(jié)點就會往上一級去找拜姿, 寫法還是一樣的:子元素.offsetParent烙样。

    8、nextSibling 獲取兄弟節(jié)點蕊肥,這個一般在IE下可執(zhí)行

    為了兼容谷歌谒获,寫法為:nextElementSibling;

    var Oli = document.getElementsByTagName("li")

    for(var i=0;i<Oli.length;i++){

    ? ? ?Oli[i].onclick = function(){

    ? ? ? ? ?if(this.nextElementSibling){

    ? ? ? ? ? ? // 為了兼容谷歌

    ? ? ? ? ? alert(this.nextElementSibling.innerText)

    ? ? }else{

    ? ? ? ? alert(this.nextSibling.innerText)

    ? ? ? ?}

    ? }

    }

    9、createElement????創(chuàng)建節(jié)點/createTextNode????創(chuàng)建文本內(nèi)容/createDocumentFragment 文檔碎片/insertBefore 在父級元素里的某個位置插入新創(chuàng)建的子元素

    var oli = document.createElement("li"); 創(chuàng)建li標(biāo)簽

    oli.innerText="this is new li" ;??給li標(biāo)簽添加文本內(nèi)容

    obox.appendChild(oli)

    10壁却、removeChild 移除子節(jié)點

    移除子節(jié)點肯定得有父節(jié)點批狱,所以要先獲取父節(jié)點,然后獲取要刪除的每個子節(jié)點展东,最后實現(xiàn)的就是在父節(jié)點里刪除子節(jié)點赔硫,下面的例子中要刪除的肯定是li,但是我們獲取的是每個a,所以還要再獲取a的父節(jié)點,用parentNode獲取到li

    var obox = document.getElementById("box");

    var oa = document.getElementsByTagName("a");

    for(var i=0;i<oa.length;i++){

    ? ? ? oa[i].onclick = function(){

    ? ? ? ? ? obox.removeChild(this.parentNode)

    ? ? ? }

    }

      第一個

      delete

      第二個

      delete

      第三個

      delete

    • 第四個 delete
    • 最后編輯于
      ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
      • 序言:七十年代末盐肃,一起剝皮案震驚了整個濱河市爪膊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌砸王,老刑警劉巖推盛,帶你破解...
        沈念sama閱讀 210,914評論 6 490
      • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谦铃,居然都是意外死亡耘成,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
        沈念sama閱讀 89,935評論 2 383
      • 文/潘曉璐 我一進店門荷辕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凿跳,“玉大人,你說我怎么就攤上這事疮方】厥龋” “怎么了?”我有些...
        開封第一講書人閱讀 156,531評論 0 345
      • 文/不壞的土叔 我叫張陵骡显,是天一觀的道長疆栏。 經(jīng)常有香客問我曾掂,道長,這世上最難降的妖魔是什么壁顶? 我笑而不...
        開封第一講書人閱讀 56,309評論 1 282
      • 正文 為了忘掉前任珠洗,我火速辦了婚禮,結(jié)果婚禮上若专,老公的妹妹穿的比我還像新娘许蓖。我一直安慰自己,他們只是感情好调衰,可當(dāng)我...
        茶點故事閱讀 65,381評論 5 384
      • 文/花漫 我一把揭開白布膊爪。 她就那樣靜靜地躺著,像睡著了一般嚎莉。 火紅的嫁衣襯著肌膚如雪米酬。 梳的紋絲不亂的頭發(fā)上,一...
        開封第一講書人閱讀 49,730評論 1 289
      • 那天趋箩,我揣著相機與錄音赃额,去河邊找鬼。 笑死叫确,一個胖子當(dāng)著我的面吹牛跳芳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播竹勉,決...
        沈念sama閱讀 38,882評論 3 404
      • 文/蒼蘭香墨 我猛地睜開眼筛严,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了饶米?” 一聲冷哼從身側(cè)響起,我...
        開封第一講書人閱讀 37,643評論 0 266
      • 序言:老撾萬榮一對情侶失蹤车胡,失蹤者是張志新(化名)和其女友劉穎檬输,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匈棘,經(jīng)...
        沈念sama閱讀 44,095評論 1 303
      • 正文 獨居荒郊野嶺守林人離奇死亡丧慈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
        茶點故事閱讀 36,448評論 2 325
      • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了主卫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逃默。...
        茶點故事閱讀 38,566評論 1 339
      • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖簇搅,靈堂內(nèi)的尸體忽然破棺而出完域,到底是詐尸還是另有隱情,我是刑警寧澤瘩将,帶...
        沈念sama閱讀 34,253評論 4 328
      • 正文 年R本政府宣布吟税,位于F島的核電站凹耙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏肠仪。R本人自食惡果不足惜肖抱,卻給世界環(huán)境...
        茶點故事閱讀 39,829評論 3 312
      • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望异旧。 院中可真熱鬧意述,春花似錦、人聲如沸吮蛹。這莊子的主人今日做“春日...
        開封第一講書人閱讀 30,715評論 0 21
      • 文/蒼蘭香墨 我抬頭看了看天上的太陽匹涮。三九已至天试,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間然低,已是汗流浹背喜每。 一陣腳步聲響...
        開封第一講書人閱讀 31,945評論 1 264
      • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留雳攘,地道東北人带兜。 一個月前我還...
        沈念sama閱讀 46,248評論 2 360
      • 正文 我出身青樓,卻偏偏與公主長得像吨灭,于是被迫代替她去往敵國和親刚照。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
        茶點故事閱讀 43,440評論 2 348

      推薦閱讀更多精彩內(nèi)容

      • 1.DOM基礎(chǔ) 什么是DOM :document ,節(jié)點! 其實說的都是一個東西, CSS時管叫標(biāo)簽, JS時管叫...
        壹點微塵閱讀 426評論 0 0
      • 一喧兄、JS前言 (1)認(rèn)識JS 也許你已經(jīng)了解HTML標(biāo)記(也稱為結(jié)構(gòu))无畔,知道了CSS樣式(也稱為表示),會使用HT...
        凜0_0閱讀 2,755評論 0 8
      • DOM DOM內(nèi)容主要分為四部分: 什么是DOM和節(jié)點吠冤; 獲取節(jié)點浑彰; 節(jié)點操作(3種); 屬性操作(3種)拯辙。 什么...
        magic_pill閱讀 771評論 0 1
      • 第1章 認(rèn)識JS JavaScript能做什么郭变?1.增強頁面動態(tài)效果(如:下拉菜單、圖片輪播涯保、信息滾動等)2.實現(xiàn)...
        mo默22閱讀 1,250評論 0 5
      • 一段感情到底為什么糟糕诉濒, 其實答案顯而易見 要不是愛而不得.自己卻難放手, 折磨著自己也折磨著別人 . 另一種大概...
        劉亞男滴噠滴閱讀 409評論 3 5