console 輸出 DOM 對(duì)象

背景

前端開(kāi)發(fā)調(diào)試的時(shí)候,經(jīng)常需要查看HTML DOM元素對(duì)象,如圖所示:

dom_object.png

DOM元素對(duì)象包含了HTML DOM的各種屬性,例如:

  • 位置
    element.offsetHeight
    element.offsetWidth

  • 事件綁定
    element.onclick
    element.onkeydown

  • 子孫DOM節(jié)點(diǎn)和祖先DOM節(jié)點(diǎn)
    element.childNodes
    element.parentNodes

  • 文本
    element.innerText
    element.outerHTML

  • 樣式
    element.style.color
    element.style.backgroundColor

總之超級(jí)有用。

問(wèn)題

一般我們會(huì)使用 console 控制臺(tái)打出DOM元素對(duì)象。
然而,在Chrome和IE中無(wú)法單獨(dú)打印DOM object。
測(cè)試代碼:在jsfiddle查看測(cè)試代碼

測(cè)試代碼

HTML:

<div id="messagecontent">
    <div class="message">
        <p>hello</p>
    </div>
</div>

JS:

var messageContent = document.getElementById('messagecontent');
var messages = messageContent.childNodes;
console.log(messageContent); // Code1
console.log(messages); // Code2
console.log(messages[0]); // Code3
  • 在Chrome44中

Code1 對(duì)于docment.getElementById()得到的DOM object,console輸出文本
Code2 DOM Object Array 輸出對(duì)象數(shù)組 [贊]
Code3 DOM Object Array [x],輸出文本

chrome_dom_console.png
  • 在IE11 Edge中

Code1 輸出文本
Code2 輸出文本
Code3 輸出文本

ie_dom_console.png
  • 在 Firefox 中

Code1 可查看對(duì)象 [贊]
Code2 可查看對(duì)象 [贊]
Code3 可查看對(duì)象 [贊]

firefox_dom_console.png

原因

JS中使用messages[0].style.color = 'red';修改文本顏色成功,說(shuō)明messages[0]確實(shí)是對(duì)象。并且在firefox中console可以查看對(duì)象,Chrome和IE中console 打印 DOM object 成文本,但其還是對(duì)象。

所以這個(gè)問(wèn)題是瀏覽器的控制臺(tái)輸出策略不同
對(duì)于開(kāi)發(fā)者,在Chrome和IE中查看DOM object不方便。

方案

把DOM對(duì)象封裝成Array的形式

JS:

console.log([messageContent]);
console.log(messages);
console.log([messages[0]]);

這下在主流瀏覽器中都正常了,不過(guò)要到數(shù)組里面查看DOM object。

完。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • AJax 優(yōu)化 緩存 Ajax 請(qǐng)求盡量使用GET, 僅取決于cookie數(shù)量 Cookie 優(yōu)化 減少Cooki...
    KeKeMars閱讀 9,477評(píng)論 5 89
  • 一、JS前言 (1)認(rèn)識(shí)JS 也許你已經(jīng)了解HTML標(biāo)記(也稱(chēng)為結(jié)構(gòu)),知道了CSS樣式(也稱(chēng)為表示),會(huì)使用HT...
    凜0_0閱讀 2,939評(píng)論 0 8
  • JavaScript的組成 JavaScript 由以下三部分組成:ECMAScript(核心):JavaScri...
    紋小艾閱讀 4,455評(píng)論 0 3
  • @轉(zhuǎn)自GitHub 介紹js的基本數(shù)據(jù)類(lèi)型。Undefined、Null、Boolean、Number、Strin...
    YT_Zou閱讀 1,330評(píng)論 0 0
  • 我沉浸夢(mèng)中的五彩斑斕 為回味你的一顰一笑 清醒卻恍若隔世 依稀可聞你秀發(fā)的芳香 我奔赴盛大的宴會(huì) 醉心于一曲曲的探...
    紫蘇卡卡閱讀 316評(píng)論 0 2

友情鏈接更多精彩內(nèi)容