Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/02/2007, 07:04
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Error usando el método replace

El prototype sólo sirve para objetos de javascript definidos (creo, corregidme si me equivoco). Así que tendrás que definir tu objTabla (que no nos lo has puesto) y meter dentro de su definición ese método.

He creado un objTabla a mi gusto con las filas y columnas pasadas por argumento, y el contenido de las celdas son palabras del lorem ipsum.

Luego buscamos dentro de la tabla la palabra "ipsum" para marcarla de rojo:

Código PHP:
<script>

var 
palabras="Lorem ipsum dolor sit amet consectetuer adipiscing elit Ut ligula mi iaculis ut pharetra tempus";
palabras=palabras.toLowerCase().split(" ");

function 
palabraAlAzar() {
    return 
palabrasMath.round(Math.random()*palabras.length) ];
}


function 
objTabla(filas,columnas) {
    var 
t=document.createElement("TABLE");
    
t.setAttribute("border","1");
    for(var 
fila=1fila<=filasfila++) {
        var 
fil=document.createElement("TR");
        for(var 
col=1col<=columnascol++) {
            var 
colum=document.createElement("TD");
            
colum.appendChilddocument.createTextNodepalabraAlAzar() ) );
            
fil.appendChild(colum);
        }
        
t.appendChild(fil);
    }
    
document.body.appendChild(t);

    
t.marcar=function(texto){
        var 
expReg = new RegExptexto "g" );
        
this.innerHTML this.innerHTML.replaceexpReg'<font color="#990000">'+texto+'</font>');
    }

    return 
t;
}

</script>

<script>
var t=new objTabla(5,10);
t.marcar("ipsum");
</script> 
Fíjate en la correcta manera de implementar las funciones regulares, con la funcion RegExp. Puedes añadirle los \b, que se los he quitado. Además cuando trabajas con métodos lo que tienes que hacer es no pasar el objeto por argumento, el objeto es this, directamente.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.