破棄されたブログ

このブログは破棄されました。

指定した HTML 要素の子要素に対して再帰的に処理を行う。

指定した要素の子要素に対して再帰的に処理を行う。jQuery 等ライブラリ非依存。
深度 6, 要素数 160 程度のページで 0.2 秒弱かかったんで、実用性は疑問。

/**
 * HTML 要素を再帰的に処理
 * @param HTMLElement elm HTML 要素
 */
function processHTMLElementRecursive(elm) {
	if (!(elm instanceof HTMLElement)) {
		return false;
	}

	var i = elm.childNodes.length;
	while (i-- > 0) {
		// skip node like a text node
		if (!(elm.childNodes[i] instanceof HTMLElement)) {
			continue;
		}

		// recursive
		if (elm.childNodes[i].hasChildNodes()) {
			processHTMLElementRecursive(elm.childNodes[i]);
		}

		// do something
		// console.log(elm.childNodes[i]);
	}
}