Ver Mensaje Individual
  #6 (permalink)  
Antiguo 07/07/2006, 04:02
Avatar de oskarL
oskarL
 
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 19 años, 10 meses
Puntos: 2
Bueno, he estado intentando cosas, y creo que lo he conseguido!

Si a alguien le interesa, debajo pongo el codigo. Tambien me gustaria que lo analizarais, y que lo simplificarais, si es posible, ya que uso tres bucles diferentes, y seguro que no es lo mas eficiente.

Código PHP:

    
function contiene(lugar){
        
                
//cogo la celda    
        
var td document.getElementById(lugar);
    
                
//array 'inputs' contendra el texto del codigo de cada input 
        
var inputs=new Array();

                
//array 'inputs_replaced' contendra el texto del codigo de cada input reemplazado con su value correspondiente
        
var inputs_replaced=new Array();

                
//contadores para los arrays
        
var n_inputs=0;
        var 
n_inputs_replaced=0;

                
//en code montare el string final
        
var code="";



                
//separo las etiquetas del interior de la celda en un array (en cada posicion, el codigo de una etiqueta, pero sin ">")
        
var codearray=td.innerHTML.split(">");
        
                
//lo recorro, y si se trata de una etiqueta input, lo añado al array de inputs (concatenadole ">", porque no lo lleva)
        
for (i=0s=codearray[i]; i++){    
            if(
s.substring(1,s.indexOf(" "))=="input"){
                
inputs[n_inputs]=s+">";
                
n_inputs++;
            }
        }
        
                
//recorro los inputs de la celda, y remplazo en el array de inputs el string "input" por "input value='x'", donde "x" es el valor del input de la celda 
        
for (i=0ele=td.getElementsByTagName('input')[i]; i++){
            
inputs_replaced[i]=inputs[i].replace("input ","input value='"+ele.value+"' ");
        }

                
//Muestra tal y como esta el codigo de la celda en la pagina
        
alert(td.innerHTML);

                
//recorro otra vez el array de todas las etiquetas de la celda, para montar el string final. De nuevo, si el elemento es un input, en vez de concatenar lo que hay, concateno el input reemplazado
        
for (i=0s=codearray[i]; i++){    
            if(
s.substring(1,s.indexOf(" "))=="input"){
                
code+=inputs_replaced[n_inputs_replaced];
                
n_inputs_replaced++;
            }else{
                
s2=s+">";
                
code+=s2;
            }
        }

                
//Muestro el resultado final
        
alert(code);
    } 
Bueno, lo dicho, que gracias por las aportaciones, y si se puede mejorar este codigo para que haga lo mismo, pues me lo decis, que bienvenido sera, jeje
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.