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!=1 || 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!=1 || 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?