2010-01-11 15 views
6

¿Puedo agregar un objeto de Elements dentro de otro elemento DOM usando agarrar o inyectar o cualquier otra cosa?Agregar elementos dentro de otro elemento DOM en MooTools

Hay dos elementos del objeto, tanto del elemento de tipo que se crea a través de Javascript:

var firstElem = new Element("div", {text: "something"}); // <div>something</div> 
var secondElem = new Element("div", {text: "else"});  // <div>else</div> 
var myDivs = new Elements([firstElem, secondElem]); 

myDivs contiene tanto los elementos (firstElem, secondElem) como un conjunto y que quieren añadir este objeto myDivs al elemento DOM a continuación, usando algo como $("container").grab(myDivs). Por lo que el estado de DOM antes de añadir el siguiente aspecto:

<div id="container"></div> 

Después de la adición, se ve como:

<div id="container"> 
    <div>something</div> 
    <div>else</div> 
</div> 

Pero estoy recibiendo este error al llamar $("container").grab(myDivs):

Uncaught Error: NOT_FOUND_ERR: DOM Exception 8 

pude agregue cada Elemento al contenedor uno por uno, pero me pregunto si hay una manera de agregar un objeto de Elements directamente debido a la forma en que se diseña mi solución.

Respuesta

7

Debería utilizar .adopt() en su lugar. Vea este ejemplo en jsBin: http://jsbin.com/anayu

window.addEvent("domready", function(){ 

    var firstElem = new Element("div", {text: "something"}); 
    var secondElem = new Element("div", {text: "else"}); 
    var myDivs  = new Elements([firstElem, secondElem]); 

    $("container").adopt(myDivs); 

}); 
+0

funciona como un encanto .. gracias! – Anurag

+0

por curiosidad, ¿cuál sería la ventaja de usar adopt() en lugar de appendChild()? @Sampson – trickpatty

+0

@PatrickLawler El método DOM nativo 'appendChild' acepta solo una referencia de elemento único. Si desea agregar varios elementos, debe agregarlos a un 'documentFragment', y luego agregar el fragmento. El método * adopta * de MooTools le permite pasar uno o más elementos, incluida una colección. – Sampson

4

Element method: adopt

Obras como elemento de gancho agarrador, pero permite que varios elementos que deben adoptarse.

Eso debería ser exactamente lo que está buscando;)

+0

gracias por la respuesta rápida .. adoptar funciona genial! no sé donde estaría sin SO – Anurag

Cuestiones relacionadas