NickFitz que es correcto, DocumentFragment
no tiene la API que se espera de Document
o Element
, en el estándar o en los navegadores (que es una lástima, sino que sería muy útil para poder establecer una del fragmento innerHTML
.
marcos Incluso no le ayuda aquí, ya que tienden a requerir nodos estén en el documento, o de otra manera utilizar métodos en el nodo de contexto que no existe en fragmentos. probablemente usted tiene que escribir el suyo propio, p. ej .:
function Node_getElementById(node, id) {
for (var i= 0; i<node.childNodes.length; i++) {
var child= node.childNodes[i];
if (child.nodeType!==1) // ELEMENT_NODE
continue;
if (child.id===id)
return child;
child= Node_getElementById(child, id);
if (child!==null)
return child;
}
return null;
}
Casi con certeza sería mejor hacer un seguimiento de las referencias a medida que avanza que confiar en una función ingenua y de bajo rendimiento como la anterior.
var frag= document.createDocumentFragment();
var mydiv= document.createElement("div");
mydiv.id= 'myId';
frag.appendChild(mydiv);
// keep reference to mydiv
Esta pregunta se realizó en 2009. __En 2012 tenemos querySelectorAll, que funciona en fragmentos de documento__. Vea la respuesta de @ Stephen a continuación. – mikemaccana