Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/04/2007, 19:14
all-ill
 
Fecha de Ingreso: junio-2002
Mensajes: 750
Antigüedad: 21 años, 11 meses
Puntos: 22
prototype: envolver elementos html

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++;
        }
      });

Última edición por all-ill; 02/05/2007 a las 08:23 Razón: encontrada solución provisional