childNodes和children的區(qū)別

我前一篇文章提到了,今天使用印象筆記和馬克飛象來做筆記阵漏,并提到了Markdown編輯器峭弟,這篇childNodes和children的區(qū)別筆記朗伶,就是我把簡(jiǎn)書的寫文章編輯模式由“富文本模式”換成了“Markdown”模式而寫的好渠,對(duì)于我們這些新手來說昨稼,記筆記,特別是有代碼塊的地方拳锚,使用Markdown編輯假栓,一目了然。當(dāng)然了霍掺,對(duì)于大神匾荆,已經(jīng)深知Markdown的當(dāng)我什么沒說,略過就好杆烁。廢話不多說牙丽,下面進(jìn)入正題:

我們都知道,當(dāng)我們想要知道一個(gè)標(biāo)簽里面有多少子節(jié)點(diǎn)的時(shí)候兔魂,都是使用childNodes來查看剩岳。如下面代碼(查看ul的子節(jié)點(diǎn)):

<script>
window.onload = function(){
    var oUl = document.getElementsByTagName('ul')[0];
        alert(oUl.childNodes.length);
    //上面彈出語(yǔ)句的結(jié)果為:在IE 6-8 瀏覽器中是2,但在ie9以上或者其他瀏覽器入热,如谷歌拍棕,火狐等結(jié)果都是5,因?yàn)檫@些瀏覽器都把ul到li之間的空白節(jié)點(diǎn)也算上了勺良,所以結(jié)果為5绰播。
}
</script>
<body>
    <ul>
        <li></li>
        <li></li>
    </ul>
</body>

這就是使用childNodes帶來的問題,當(dāng)然了尚困,我們可以借助nodeType來解決這個(gè)問題蠢箩。通過判斷節(jié)點(diǎn)的nodeType來得到我們想要的結(jié)果,(因?yàn)槲谋竟?jié)點(diǎn)的nodeType值等于3事甜,而元素節(jié)點(diǎn)的nodeType值等于1)谬泌,代碼如下:

<script>
window.onload = function(){
    var oUl = document.getElementsByTagName('ul')[0];
    for(var i=0;i<oUl.childNodes.length;i++){
        if(oUl.childNodes[i].nodeType == 1){
            oUl.childNodes[i].style.backgroundColor = 'red';
        }
    }
}
</script>
<body>
    <ul>
        <li></li>
        <li></li>
    </ul>
</body>

上面,我們了解到了childNodes因?yàn)闉g覽器版本的不同逻谦,給我們帶來的麻煩掌实。雖然借助nodeType可以解決我們的麻煩。但是邦马,有更方便的方法嗎贱鼻?答案是:當(dāng)然有。它就是children滋将。children和childNodes最大的區(qū)別是邻悬,無論什么瀏覽器使用,都不會(huì)把空白節(jié)點(diǎn)算進(jìn)去随闽,也不需要nodeType來幫助判斷父丰,直接使用。當(dāng)我們要實(shí)現(xiàn)上面的效果時(shí)掘宪,使用children蛾扇,不需要借助nodeType來做判斷,代碼如下:

<script>
window.onload = function(){
    var oUl = document.getElementsByTagName('ul')[0];
    for(var i=0;i<oUl.children.length;i++){
        //alert(oUl.children.length) 結(jié)果為2添诉;
        oUl.children[i].style.backgroundColor = 'yellow';
    }
}
</script>
<body>
    <ul>
        <li></li>
        <li></li>
    </ul>
</body>

好吧屁桑,看完他們的區(qū)別后,我們來做個(gè)總結(jié)栏赴,經(jīng)過上面的比較蘑斧,相信大家也大概能猜到了childNodes和children的區(qū)別了,他們的區(qū)別就是childNodes包括元素節(jié)點(diǎn)和文本節(jié)點(diǎn)须眷,而children只包括元素節(jié)點(diǎn)竖瘾。所以,當(dāng)我們使用時(shí)花颗,需要使用哪個(gè)捕传,不用多說,大家也能知道了扩劝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末庸论,一起剝皮案震驚了整個(gè)濱河市职辅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌聂示,老刑警劉巖域携,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異鱼喉,居然都是意外死亡秀鞭,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門扛禽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锋边,“玉大人,你說我怎么就攤上這事编曼《咕蓿” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵灵巧,是天一觀的道長(zhǎng)搀矫。 經(jīng)常有香客問我,道長(zhǎng)刻肄,這世上最難降的妖魔是什么瓤球? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮敏弃,結(jié)果婚禮上卦羡,老公的妹妹穿的比我還像新娘。我一直安慰自己麦到,他們只是感情好绿饵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瓶颠,像睡著了一般拟赊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粹淋,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天吸祟,我揣著相機(jī)與錄音,去河邊找鬼桃移。 笑死屋匕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的借杰。 我是一名探鬼主播过吻,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蔗衡!你這毒婦竟也來了纤虽?” 一聲冷哼從身側(cè)響起乳绕,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎廓推,沒想到半個(gè)月后刷袍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡樊展,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堆生。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片专缠。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖淑仆,靈堂內(nèi)的尸體忽然破棺而出涝婉,到底是詐尸還是另有隱情,我是刑警寧澤蔗怠,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布墩弯,位于F島的核電站,受9級(jí)特大地震影響寞射,放射性物質(zhì)發(fā)生泄漏渔工。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一桥温、第九天 我趴在偏房一處隱蔽的房頂上張望引矩。 院中可真熱鬧,春花似錦侵浸、人聲如沸旺韭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)区端。三九已至,卻和暖如春澳腹,著一層夾襖步出監(jiān)牢的瞬間织盼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工遵湖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留悔政,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓延旧,卻偏偏與公主長(zhǎng)得像谋国,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子迁沫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

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

  • 一芦瘾、JS前言 (1)認(rèn)識(shí)JS 也許你已經(jīng)了解HTML標(biāo)記(也稱為結(jié)構(gòu))捌蚊,知道了CSS樣式(也稱為表示),會(huì)使用HT...
    凜0_0閱讀 2,772評(píng)論 0 8
  • 第1章 認(rèn)識(shí)JS JavaScript能做什么近弟?1.增強(qiáng)頁(yè)面動(dòng)態(tài)效果(如:下拉菜單缅糟、圖片輪播、信息滾動(dòng)等)2.實(shí)現(xiàn)...
    mo默22閱讀 1,292評(píng)論 0 5
  • DOM DOM內(nèi)容主要分為四部分: 什么是DOM和節(jié)點(diǎn)祷愉; 獲取節(jié)點(diǎn)窗宦; 節(jié)點(diǎn)操作(3種); 屬性操作(3種)二鳄。 什么...
    magic_pill閱讀 777評(píng)論 0 1
  • 1.dom對(duì)象的innerText和innerHTML有什么區(qū)別订讼? innerText是一個(gè)可寫屬性髓窜。將寫入的內(nèi)容...
    candy252324閱讀 541評(píng)論 0 0
  • 因最近心情郁悶,邀同學(xué)吃夜宵喝酒欺殿。訴說起自己30多歲的迷茫寄纵,對(duì)經(jīng)濟(jì)自由的向往與現(xiàn)實(shí)環(huán)境的羈絆。像是在找借口脖苏,也是像...
    知命樂天閱讀 285評(píng)論 0 1