Foros del Web » Programando para Internet » Javascript »

Cambiar color de fondo de <p>

Estas en el tema de Cambiar color de fondo de <p> en el foro de Javascript en Foros del Web. Quisiera que me ayuden con este script, verán... Tengo un página de lectura, a cada párrafo <P>, le puesto una id (<p id="xx">) Ahora, tengo ...
  #1 (permalink)  
Antiguo 26/05/2003, 15:41
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
Cambiar color de fondo de <p>

Quisiera que me ayuden con este script, verán...

Tengo un página de lectura, a cada párrafo <P>, le puesto una id (<p id="xx">)

Ahora, tengo un script que al darle click sobre el # de párrafo, me hace aparecer un cuadrito rojo alado, de manera que queda marcado (el script usa cookie tambien), pero lo que yo quiero es que al darle click al # de párrafo no solo me aparzca el cuadrito rojo (img), sino que se me cambie el color de todo el <p>;

Parte del Script es este (es que es largo) :

function drawmark(mark, id)
{
//este es el cuadrito transparente
graphic = "../marcador/selectoff.gif";

if(getSelectionPosition(id) >= 0)
// este es el cuadrito rojo
{graphic = "../marcador/selecton.gif";
// esto es lo que he hecho, pero sirve solo para el id="2", no para Toooodod los demás!!
document.getElementById('2').style.backgroundColor ='#ffffcc';}

return "<A HREF='javascript:selectmark(" + mark + "," + id + ");'><FONT COLOR='#000000'><IMG NAME='id" + id + "' SRC='" + graphic + "' border='0'>" + mark + "</FONT></A>";
}

En el cuerpo del texto al empezar un párrafo tengo esto:

<p id="2"class="bmcont"><span class="bmcont"><a name="2"></a>
<script language="JavaScript">
document.write(drawmark(2,78));
</script> Lo hago en el idioma de mi padre...etc....

Para el <p id="2"...>, funciona bien, le doy click y me cambia el color, pero yo quiero que sea para todos los párrafos.

Le he puesto en el script :
document.getElementById('id').style.backgroundColo r='#ffffcc';}
pero no pasa nada....

Qué le cabio al script?
  #2 (permalink)  
Antiguo 27/05/2003, 11:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola medinauta:

Para manipular la colección de etiquetas "P", debes usar:

document.getElementsByTagName("p")...

y si solo quieres cambiar una subselección, puedes ponerlas en una capa, y seleccionar la colección dentro de la capa...

Ejemplo 1:

var Ps = document.getElementsByTagName("p");
for (var i = 0; i < Ps.length; i ++)
Ps[i].style.backgroundColor = "#FFFFCC";

Ejemplo 2:

// suponemos que está dentro de una capa con id=capa...
var Ps = document.getElementById("capa").getElementsByTagNa me("p");
for (var i = 0; i < Ps.length; i ++)
Ps[i].style.backgroundColor = "#FFFFCC";


Espero que te sirva...

Saludos
  #3 (permalink)  
Antiguo 27/05/2003, 15:45
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
Gracias Caricatos, estoy probando a ver si me sirve...no puedo usar capas en esta página...pero estoy usando tus ejemplos....

Me sería de mayor ayuda si me explicaras lo que hace cada parte, para adaptarla a lo que estoy haciendo......

:( --> No me quedó claro el uso de la variable Ps y si en lugar de ... getElementsByTagName("p"); puedo cambiar la "p", por otro nombre???
  #4 (permalink)  
Antiguo 27/05/2003, 17:47
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Trataré de explicarte.

Dentro de un documento, desde javascript (las versiones que no sean muy viejas) se pueden obtener colecciones de etiquetas (o arrays).

Así como se usa el atributo id para obtener una etiqueta cualquiera mediante getElementById, se pueden obtener 2 arrays significativos, uno a partir del atributo name: getElementsByName (entre paréntesis el valor del atributo name), y el segundo array (me parece que lo correcto hablando de "objetos" es decir "colección") es el de un tag determinado usando getElementsByTagName("tag")...

Como dije al principio, dentro de un documento, por lo que la sintaxis es con "document." por delante.
Entonces (voy a obviar el primer ejemplo, porque no es el caso, y además he notado comportamientos distintos en explorer y netscape) las etiquetas "p" de un documento se obtienen con
document.getElementsByTagName("p")...

y como se obtiene un "array", luego debes referenciarlos individualmente mediante un índice, y además puedes averiguar el tamaño como los arrays con length.

Por último, si cambias la p por div, consigues un array de los tags div del documento...

Si te interesa que te explique lo de las capas, o no has entendido algo, avísame, y trataré de expliártelo mejor.

Saludos
  #5 (permalink)  
Antiguo 28/05/2003, 10:21
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
Ahí nomás comprendí la mayoría...muchísmas Gracias Caricatos....me ayudaste un mundo!
  #6 (permalink)  
Antiguo 28/05/2003, 10:25
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284


¡Estupendo!

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:26.