Самое интересное, что это не проходит)
Пример я удалил кусок dom дерева и если там есть элемент, который я проверяют на "в dom'e" то он вернет родителя не смотря ни на что.
Про id, почему нельзя добавлять? Пишите функцию, которая генерирует уникальные id и вставляете их, также для защиты от css можно добавлять впереди ":".
function elementInDOM( elem ) {
var elInDOM;
if ( elem.id ) {
elInDOM = document.getElementById( elem.id );
} else {
elem.id = ":" + uniqId();
elInDOM = document.getElementById( elem.id );
elem.removeAttribute("id");
}
return !!elInDOM;
}