當前位置:成語大全網 - 書法字典 - js如何遞歸dom JSON?

js如何遞歸dom JSON?

妳好,我給妳寫了壹個函數:

功能?nodeTree(節點)?{

var?根?=?node.tagName,

樹?=?& lt跨度?style = " color:# fff;"& gt?+?根?+?'& lt/span>。& ltbr & gt,

輸出?=?'',

kcolors?=?['#cc99cc ',?#78dead ',?#3ba264 ',?#ffcc54'],

vcolors?=?['#bb512d ',?#6798e8 ',?#f3825b ',?# c 1 cf F4 '];

功能?listObj(obj,?_root)?{

var?首先?=?沒錯,

根?=?_ root

為了什麽?(var?k?在?obj)?{

如果?(第壹)?{

根?+=?'::'?+?k;

首先?=?假的;

}

var?深?=?root.split('::')。長度?-?1,

v?=?typeof(obj[k])?==?功能?||?typeof(obj[k])?==?字符串?||?(''?+?obj[k])。indexOf('函數')?===?0typeof(obj[k])?:?obj[k];

樹?+=?& lt跨度?class="gray " >& ampnbsp& ampnbsp& amp' nbsp'?+?'|....'。重復(深?-?1)?+?|..?& lt/span>。& lt跨度?style="color:'?+?kcolors【深?-?1]?+?';" & gt?+?k?+?'& lt/span>。:?& lt跨度?style="color:'?+?vcolors【深?-?1]?+?';" & gt?+?v?+?'& lt/span>。& ltbr & gt;

如果?((object . prototype . tostring . call(obj[k])?===?【對象?對象]'?||?object . prototype . tostring . call(obj[k])。match(/^\[object\sHTML[^I]/)?& amp& amp?深?& lt?3)?{

listObj(obj[k],?根);

}

}

回歸?樹;

}

樹?=?listObj(節點);

document . body . style . background color?=?# 2d 2d d ';

document.body.style.color?=?# fff ';

document.body.innerHTML?=?樹;

}使用方法很簡單。打開任意頁面,首先在控制臺執行上述函數聲明,然後調用函數顯示指定節點的屬性列表:

node tree(document . body);?//?或者

node tree(document . getelementsbytagname(' div ')[0]);返回的結果會直接覆蓋正文中的內容,並且會突出顯示和縮進,查看起來非常方便。

遞歸顯示內容較多,執行會稍慢。現在控制顯示三級,打電話需要稍微等壹下。

希望是妳想要的結果,希望采納~ ~