Цитата:
|
Так в .childNodes попадают undefined
|
они туда не попадают, дело в уменьшении размера childNodes
Цитата:
|
И не только для этого случая.
Мало ли в каких ситуациях такое может случиться
|
с такими "как бы чего не вышло" можно далеко зайти, поэтому я предпочитаю знать, зачем я что-то делаю
Цитата:
|
Зачем перезаписывать текстовые узлы содержащие пробельные символы
|
это случайно получилось, я на это не рассчитывал
я бы написал так:
window.onload = function() {
TextNode.each(function(noda) {
var div = document.createElement('div');
div.innerHTML = noda.nodeValue.replace(/(http\:\/\/www\.youtube\.com\/watch\?v\=[0-9a-z]{11})/gi, '<a href="$1">$1</a>');
if (! div.firstChild ||
(div.innerHTML == noda.nodeValue))
return;
var f = document.createDocumentFragment();
while( div.firstChild )
f.appendChild( div.firstChild );
noda.parentNode.replaceChild( f, noda );
});
};
не знаю, если бы это была какая-то общедоступная библиотека, стоило бы ее как-то оптимизировать, но такого опыта у меня пока нету. И я бы скорее искал узкие места в реальных приложениях, чем оптимизировал все по максимуму
кстати, по поводу читабельности можно вспомнить
http://en.wikipedia.org/wiki/Unix_philosophy , там несколько раз отдается предпочтение читабельности, а не наоборот