Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/10/2007, 20:13
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Acceder a datos de un div

Hola otra vez:

Lo más cómodo para acceder a los elementos de una página es darles un id con el atributo del mismo nombre, y desde javascript hacer:
document.getElementById()

También podrías dar atributos name a varios elementos, para poder tener una colección de ellos con document.getElementsByName(), pero funciona a veces de forma anómala en IE, tomando por atributo name los atributos id.



Para acceder a declaraciones dentro del style podemos hacer elemento.style. Éso es un objeto que contiene todos los estilos posibles que podemos dar a un elemento. Es decir: elemento.style.cursor es la definición para el estilo cursor, en tu caso "pointer", elemento.style.fontSize es para la declaración de tamaño, en tu caso una cadena vacía ("").

Para modificar los estilos puedes asignarlos sin ningún problema:
elemento.style.cursor = "help";




En otro plano, para obtener cassius de un atributo de ese tipo, podemos hallar todo el atributo como string, y luego buscar cassius con la ayuda de indexOf(). Recortaremos ese cassius con substring(). Pero todo depende de tus necesidades, si siempre buscas cassius te funcionará, pero si buscas la siguiente palabra después de Jugador, entonces no. Todo depende de lo que quieras tú.

Te voy a postear un ejemplo para extraer la siguiente palabra a "jugador" en un string (que puede ser tu atributo):

Código PHP:
<a id="miEnlace" style="cursor:pointer" alt="Jugador cassius en el ranking"></a>

<
script type="text/javascript">
<!--

window.onload = function() {
    var 
elEnlace document.getElementById("miEnlace");
    var 
atrAlt elEnlace.getAttribute("alt");
    var 
posicionJugador atrAlt.indexOf("Jugador");
    var 
longitudJugador "Jugador ".length;
    
// Primer recorte eliminando "Jugador " y todo lo que esté delante, el string empezará por la palabra que buscamos:
    
atrAlt atrAlt.substringposicionJugador longitudJugadoratrAlt.length );
    
// Segundo recorte, eliminar todo lo que está detrás del espacio después de la palabra que buscamos
    
var posicionEspacio atrAlt.indexOf(" ");
    
atrAlt atrAlt.substring0posicionEspacio );
    var 
palabraBuscada atrAlt;
    
alert"'"+palabraBuscada+"'" );
}

// -->
</script> 
Bueno, te estoy preparando los ejemplos desarrollando las líneas mucho para que no te líes demasiado y podamos ver los efectos de cada línea. Este ejemplo no está preparado si no existe "Jugador " y tampoco si la siguiente palabra no tiene un espacio " " después de ella. Cuando llegues a tener nivel podríamos hacer ésto así de "facil":
Código PHP:
<a id="miEnlace" style="cursor:pointer" alt="Jugador cassius en el ranking"></a>

<
script type="text/javascript">
<!--

window.onload = function() {
    var 
palabraBuscada document.getElementById("miEnlace").getAttribute("alt").match( /.*Jugador ([^ ]+).*/ )[1];
    
alertpalabraBuscada );
}

// -->
</script> 
Pero claro, esto exige tener conocimientos de expresiones regulares, que son lo más complicado (y quizás potente) que puede tener javascript (y muchos otros lenguajes también).




Respecto a cómo acceder a todos los enlaces que tengan por atributo href # podemos recorrer todos los enlaces de la página mirando ese atributo (hay que mirar si acaban en #):
Código PHP:
<a href="http://www.google.es">g</a>
<
a href="#">j</a>
<
a href="#">8</a>
<
a href="http://es.wikipedia.org">w</a>

<
script type="text/javascript">
<!--

window.onload = function() {
    var 
atrs document.getElementsByTagName("A");
    for(var 
i=0atrsL=atrs.lengthi<atrsLi++) {
        if( 
atrs[i].href.charAtatrs[i].href.length-) === "#" ) {
            
// hacemos lo que queramos con ese elemento atrs[i]
            
alert("Soy #!, tengo por contenido "+atrs[i].innerHTML);
        }
    }
}

// -->
</script> 


Bueno, lo siento por toda la chapa que he escrito.


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.