DOM操作

NodeList v.s. HTMLCollection
DOM中的NodeList與HTMLCollection
饑人谷DOM

1. dom對象的innerText和innerHTML有什么區(qū)別怠李?

     <div id="seostudying"> <span style="color:red">www.seostudying.com</span> </div>
  1. seostudying.innerText
    它得到的是<div></div>標(biāo)簽中的文本節(jié)點的內(nèi)容在多層的時候會按照元素由淺到深的順序拼接內(nèi)容
    seostudying

  2. seostudying.innerHTML
    它得到的是<div></div>標(biāo)簽中的所有內(nèi)容菩收,包括元素節(jié)點,屬性節(jié)點以及文本節(jié)點脾猛,也就是
    <span style="color:red">www.seostudying.com</span>

  3. seostudying.outerHTML
    它得到的是包括<div></div>標(biāo)簽自身及其中的所有內(nèi)容,也就是
    <div id="seostudying"><span style="color:red">www.seostudying.com</span></div>

同時也得提醒一下大家咪奖,這3個屬性都是IE專有的屬性,而不是W3C的標(biāo)準(zhǔn)凌唬,因而一般的主流瀏覽器Firefox赁还,Opera妖泄,Safari僅僅支持innerHTML,其它兩個屬性都不支持艘策。建議你使用DOM來進行處理

20081124205003453.gif

2.elem.children和elem.childNodes的區(qū)別蹈胡?

  • childNodes 屬性,它返回指定元素的子元素集合朋蔫,包括HTML節(jié)點罚渐,所有屬性,文本驯妄『刹ⅲ可以通過nodeType來判斷是哪種類型的節(jié)點,只有當(dāng)nodeType==1時才是元素節(jié)點富玷,2是屬性節(jié)點,3是文本節(jié)點既穆。

  • 有時候需要獲取指定元素的第一個HTML子節(jié)點(非屬性/文本節(jié)點)赎懦,最容易想到的就是firstChild 屬性。代碼中第一個HTML節(jié)點前如果有換行幻工,空格励两,那么firstChild返回的就不是你想要的了∧衣可以使用nodeType來判斷下当悔。

        function getFirst(elem){
            for(var i=0,e;e=elem.childNodes[i++];){
                if(e.nodeType==1)
                    return e;
            }      
        }
    
  • children 屬性**,它返回指定元素的子元素集合踢代。它只返回HTML節(jié)點盲憎,甚至不返回文本節(jié)點。且在所有瀏覽器下表現(xiàn)驚人的一致胳挎。和childNodes 一樣饼疙,在Firefox下不支持()取集合元素。因此如果想獲取指定元素的第一個HTML節(jié)點慕爬,可以使用children[0]來替代上面的getFirst函數(shù)窑眯。需注意children在IE中包含注釋節(jié)點。

3. 查詢元素有幾種常見的方法医窿?ES5的元素選擇方法是什么?

  • 老版本:

    • document.getElementById()
    • document.getElementsByClassName()
    • document.getElementsByName()
    • document.getElementsByTagName()
  • 新增:

    • querySelector()
    • querySelectorAll()
    • elementFromPoint()

4.如何創(chuàng)建一個元素磅甩?如何給元素設(shè)置屬性?如何刪除屬性

  • 創(chuàng)建元素
    • createElement('div')
  • 元素設(shè)置屬性
    • node.setAttribute('id','id_value');
  • 刪除屬性
    • node.removeAttribute('id')

5.如何給頁面元素添加子元素姥卢?如何刪除頁面元素下的子元素?

    var span = document.createElement('span')
  • 添加元素
    • document.body.appendChild(span)
  • 刪除元素
    • document.body.removeChild(span)

6.element.classList有哪些方法痢毒?如何判斷一個元素的 class 列表中是包含某個 class塔嬉?如何添加一個class渗蟹?如何刪除一個class?

  • element.classList有四種方法:
    • add( String [, String] )
      添加指定的類值。如果這些類已經(jīng)存在于元素的屬性中饵逐,那么它們將被忽略。
    • remove( String [,String] )
      刪除指定的類值彪标。
    • item ( Number )
      按集合中的索引返回類值倍权。
    • toggle ( String [, force] )
      當(dāng)只有一個參數(shù)時:切換 class value; 即如果類存在,則刪除它并返回false捞烟,如果不存在薄声,則添加它并返回true。
      當(dāng)存在第二個參數(shù)時:如果第二個參數(shù)的計算結(jié)果為true题画,則添加指定的類值默辨,如果計算結(jié)果為false,則刪除它
    • contains( String )
      檢查元素的類屬性中是否存在指定的類值苍息。
    // div是具有class =“foo bar”的<div>元素的對象引用
    
    // 判斷判斷一個元素的 class 列表中是是否包含某個 class
    alert(div.classList.contains("foo"));
    
    // 刪除class
    div.classList.remove("foo");
    
    //添加class
    div.classList.add("anotherclass");

    // 如果visible被設(shè)置則刪除它缩幸,否則添加它
    div.classList.toggle("visible");

    // 添加/刪除 visible,取決于測試條件竞思,i小于10
    div.classList.toggle("visible", i < 10);

    //添加或刪除多個類
    div.classList.add("foo","bar");
    div.classList.remove("foo", "bar");

7.如何選中如下代碼所有的li元素表谊? 如何選中btn元素?

    <div class="mod-tabs">
       <ul>
           <li>list1<li>
           <li>list2<li>
           <li>list3<li>
       </ul>
       <button class="btn">點我</button>
    </div>
    <script>
       var btn = document.querySelector('.btn');
       var lis = document.querySelectorAll('li');
    </script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盖喷,一起剝皮案震驚了整個濱河市爆办,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌课梳,老刑警劉巖距辆,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異暮刃,居然都是意外死亡跨算,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門椭懊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漂彤,“玉大人,你說我怎么就攤上這事灾搏〈焱” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵狂窑,是天一觀的道長媳板。 經(jīng)常有香客問我,道長泉哈,這世上最難降的妖魔是什么蛉幸? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任破讨,我火速辦了婚禮,結(jié)果婚禮上奕纫,老公的妹妹穿的比我還像新娘提陶。我一直安慰自己,他們只是感情好匹层,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布隙笆。 她就那樣靜靜地躺著,像睡著了一般升筏。 火紅的嫁衣襯著肌膚如雪撑柔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天您访,我揣著相機與錄音铅忿,去河邊找鬼。 笑死灵汪,一個胖子當(dāng)著我的面吹牛檀训,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播享言,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼峻凫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了担锤?” 一聲冷哼從身側(cè)響起蔚晨,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤乍钻,失蹤者是張志新(化名)和其女友劉穎肛循,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體银择,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡多糠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了浩考。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夹孔。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖析孽,靈堂內(nèi)的尸體忽然破棺而出搭伤,到底是詐尸還是另有隱情,我是刑警寧澤袜瞬,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布怜俐,位于F島的核電站,受9級特大地震影響邓尤,放射性物質(zhì)發(fā)生泄漏拍鲤。R本人自食惡果不足惜贴谎,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望季稳。 院中可真熱鬧擅这,春花似錦、人聲如沸景鼠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莲蜘。三九已至谭确,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間票渠,已是汗流浹背逐哈。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留问顷,地道東北人昂秃。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像杜窄,于是被迫代替她去往敵國和親肠骆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348

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

  • 基本介紹 文檔對象模型 (DOM) 是HTML和XML文檔的編程接口塞耕。它給文檔(結(jié)構(gòu)樹)提供了一個結(jié)構(gòu)化的表述并且...
    草鞋弟閱讀 431評論 0 0
  • 題目1: dom對象的innerText和innerHTML有什么區(qū)別蚀腿? innerText是一個可寫屬性,返回元...
    QQQQQCY閱讀 182評論 0 0
  • 1. dom對象的innerText和innerHTML有什么區(qū)別扫外? innerText是一個可寫屬性莉钙,返回元素內(nèi)...
    _李祺閱讀 277評論 0 0
  • 節(jié)點 節(jié)點類型 每個節(jié)點都有一個 nodeType 屬性,用于表示節(jié)點類型筛谚。nodeType 屬性返回節(jié)點的類型磁玉。...
    練曉習(xí)閱讀 436評論 0 4
  • 「百度百科」:投資指的是特定經(jīng)濟主體為了在未來可預(yù)見的時期內(nèi)獲得收益或是資金增值,在一定時期內(nèi)向一定領(lǐng)域投放足夠數(shù)...
    惠州阿超閱讀 246評論 4 4