Javascript - document.createDocumentFragment () - ссылка на элемент по идентификатору - PullRequest
2 голосов
/ 02 января 2011

Можно ли ссылаться на элемент по его идентификатору, пока он находится внутри documentFragment, прежде чем он будет добавлен в документ?

Например:

var docFragment = document.createDocumentFragment();
var newElem = document.createElement('div');
docFragment.appendChild(newElem);
var newAttrib = document.createAttribute('id');
newAttrib.value = 'myid';
newElem.setAttributeNode(newAttrib);
var newElem2 = document.createElement('span');
docFragment.firstChild.appendChild(newElem2);
var newAttrib = document.createAttribute('id');
newAttrib.value = 'myid2';
newElem2.setAttributeNode(newAttrib);

Для некоторых примеров я пробовал это,

alert(docFragment.getElementById('myid').id) <-----, но это не работает </p>

alert(docFragment.document.getElementById('myid').id) <----- но это не работает </p>

Я знаю, что это работает:

alert(docFragment.firstChild.id) <----- это работает, но мне было интересноесли есть возможность ссылаться на него другими способами </p>

1 Ответ

1 голос
/ 02 января 2011

Нет, это не :

Простое создание элемента и присвоение идентификатора не сделает элемент доступным для getElementById. Вместо этого нужно сначала вставить элемент в дерево документа с помощью insertBefore или аналогичным способом, возможно, в скрытый div.

И, кроме того, DocumentFragment реализует только методы интерфейса Node, и getElementById не является частью этого.

Нет других способов получить элемент по ID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...