Я ищу способ найти, был ли элемент, на который ссылаются в JavaScript, вставлен в документ.
Позволяет иллюстрируют случай со следующим кодом:
var elem = document.createElement('div');
// Element has not been inserted in the document, i.e. not present
document.getElementByTagName('body')[0].appendChild(elem);
// Element can now be found in the DOM tree
JQuery имеет: видимый селектор, но это не даст точный результат, когда я должен буду найти, что невидимый элемент был помещен куда-нибудь в документе.
Сделайте следующее:
var elem = document.createElement('div');
elem.setAttribute('id', 'my_new_div');
if (document.getElementById('my_new_div')) { } //element exists in the document.
Самый безопасный способ - напрямую проверить, содержится ли элемент в документе:
function isInDocument(el) {
var html = document.body.parentNode;
while (el) {
if (el === html) {
return true;
}
el = el.parentNode;
}
return false;
}
var elem = document.createElement('div');
alert(isInDocument(elem));
document.body.appendChild(elem);
alert(isInDocument(elem));
Используйте compareDocumentPosition , чтобы узнать, содержится ли элемент внутри документа
. PPK содержит сведения о совместимости с браузером, а Джон Ресиг имеет версию для IE.