пятница, 17 апреля 2009 г.

Javascript функция рекурсивного обхода DOM

Пока я с красными глазами искал как исправить баг в IE из прошлого поста. Я написал весьма полезную функцию подписывающую все подписывающиеся потомки заданного элемента на событие вызывающие alert. И хотя существует мнение, что дебажить код алертами плохо - эта возможность меня спасла, от разрыва мозга, как минимум.

function resetinputs(node) {
var oNode = node;
if (!oNode.length) {
try {
if (oNode.tagName == "IMG" || oNode.tagName == "MAP" || oNode.tagName == "AREA") { alert(oNode.tagName + "-|-" + oNode.id); };
if (oNode.Id == "ChartArea1") { oNode.style.opacity = ".5"; };
}
catch (dfr) { };
var curch = oNode;
try {
curch.onmouseup = function(evnt) {
var n = 1;
alert(this.tagName + " -|- " + this.id);
var z = 25;
};
} catch (eval) { };
if (oNode.childNodes) {
curch = oNode.childNodes;
for (var n = 0; n < curch.length; n++) resetinputs(curch[n]);
}
}
else {
curch = oNode.childNodes;
for (var i = 0; i < curch.length; i++) { resetinputs(curch[i]) };
}
return 1;
}

Комментариев нет :

Отправить комментарий