Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/04/2007, 17:57
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 2 meses
Puntos: 45
prototype con elementos del DOM

Hola qué tal:

Si tengo este sencillo código:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html>
<
head>
<
title></title>
<
meta name="Author" content="derkeNuke">
</
head>

<
body>

<
p>Contenido del párrafo</p>

<
script>

var 
cuerpo=document.body;
var 
parrafo=cuerpo.childNodes[0];
while( 
parrafo.nodeType!=|| parrafo.tagName.toLowerCase()!="p") {
    
parrafo=parrafo.nextSibling;
}
document.write(parrafo);


</script>

</body>
</html> 
Lo que hace es encontrar la etiqueta <BODY> y almacenarla en cuerpo, para luego recorrer todos sus hijos hasta encontrarnos con el primer elemento párrafo <P>.

Bueno, me gustaría crear una función para esto, algo así como encuentraElPrimero(que,donde). Esto no es dificil, de hecho es el código que está ahí con un par de argumentos en vez de las variables.

El caso es que me gustaria transformarlo a donde.encuentraElPrimero(que), es decir, hacer un prototype para un elemento (en este caso [object HTMLBodyElement]).


¿Se puede hacer ésto?
He intentado:
Código PHP:
Object.prototype.encuentraElPrimero=function(que) {
    var 
loQueBusco=this.childNodes[0];
    while( 
loQueBusco.nodeType!=|| loQueBusco.tagName.toLowerCase()!=que.toLowerCase() ) {
        
loQueBusco=loQueBusco.nextSibling;
    }
    return 
loQueBusco;

Y me lo hace bien, pero es para todo tipo de objetos, incluso los que no contienen la propiedad childNodes.



¿Existe la manera de hacer ésto bien?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.