hola,
estoy intentando envolver un elemento html dentro de otro/s mediante la librería javascript prototype:
Código:
Event.observe(window, 'load', function() {
$$('img').each(function(item){
new Insertion.Before(item, '<div class="wrap1"><div class="wrap2"><div class="wrap3">');
new Insertion.After(item, '</div></div></div>');
});
});
Pero obtengo:
Código HTML:
<div class="wrap1"><div class="wrap2"><div class="wrap3">
</div></div></div>
<img src="elemento.gif" />
En vez de:
Código HTML:
<div class="wrap1"><div class="wrap2"><div class="wrap3">
<img src="elemento.gif" />
</div></div></div>
¿cómo solucionarlo?
---------------------------------------------------------[Mensaje Editado]
Por el momento he encontrado la siguiente solución:
Código:
//Extender prototype con la función wrap
Element.addMethods({
wrap: function(element, tagName) {
element = $(element);
var wrapper = document.createElement(tagName);
element.parentNode.replaceChild(wrapper, element);
wrapper.appendChild(element);
return Element.extend(wrapper);
}
//buscar las imágenes dentro de .gallery y envolverlas en 3 <div></div>
$$('.gallery img').each(function(item){
var i = 1;
while(i <= 3){
item.wrap('div').addClassName('wrap'+i);
i++;
}
});