Foros del Web » Programando para Internet » Javascript »

principiantes - me faltan comillas

Estas en el tema de principiantes - me faltan comillas en el foro de Javascript en Foros del Web. Buenas, tengo una duda de principiante. Tengo que mostrar un listado de datos aplicándole un efecto y mi código es el siguiente: <a href="javascript :void(0);" ...
  #1 (permalink)  
Antiguo 14/07/2008, 01:04
 
Fecha de Ingreso: noviembre-2003
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
principiantes - me faltan comillas

Buenas, tengo una duda de principiante.

Tengo que mostrar un listado de datos aplicándole un efecto y mi código es el siguiente:

<a href="javascript:void(0);" onMouseOver="return presentacion('J.R.R. Tolkien', 'El hobbit');" onMouseOut="return volver();">El hobbit</a><br>

Pero con este sistema tengo que hacer un listado a mano, y para hacerlo dinámico pensaba haberlo hecho con un array de dos dimensiones.
El array funciona perfecto pero para presentar la información la meto dentro de un bucle en el que meto el código precendente en un document.write("")
El problema es que para ello tengo que encerrar el código entre comillas y claro, como ya tiene comillas el código original, me da errores.
Quedaría:

document.write("<a href='javascript:void(0);' onMouseOver='return presentacion("+libros[$i][0]+", "+libros[$i][1]+");' onMouseOut='return volver();'>"+libros[$i][0]+"</a><br>")

El texto que presento como enlace se presenta sin problemas, como os podéis imaginar el problema viene dado por el código que está dentro de la funcion "presentacion" porque en principio tendría que ir con comillas simples, pero claro, no funciona porque ya hay comillas simples para marcar el onMouseOver.
Es decir, pongo comillas (") para definir la cadena completa (el document.write), entonces ya no puedo poner comillas dobles para definir el onmouseover, y por eso lo defino con comillas simples ('), pero al hacerlo ya me quedo sin otro tipo de comillas para definir el texto que envío a la función presentación.
Las soluciones que veo son: o hay algún otro tipo de entrecomillado que pueda usar dentro de comillas simples (') o hago algún truco para no entrecomillar alguno de estos niveles.
Pero después de muchas pruebas estoy perdido y no sé cómo desatascar el problema.
Quizá la solución sea mucho más sencilla y no la vea aunque la tenga delante de las narices por eso os pido ayuda.
Os agradezco de antemano vuestra paciencia.
¿A alguien se le ocurre alguna solución?

Un saludo.

Última edición por benito_camelas; 14/07/2008 a las 01:18
  #2 (permalink)  
Antiguo 14/07/2008, 01:27
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Respuesta: principiantes - me faltan comillas

las comillas se escapan con \ delante: ejemplo:

Código:
var a="\"hola\"";
var a='\'hola\'';
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 14/07/2008, 01:42
 
Fecha de Ingreso: noviembre-2003
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: principiantes - me faltan comillas

Muchas gracias por tu rápida respuesta.
El problema es que si escapo la comilla me la presentaría como texto, pero esa comilla debería estar ahí.
La verdad es que creo que es un problema bastante trivial pero el código debe embarullarlo.
En realidad el problema es el siguiente:
Si yo hago un:

<a onMouseOver="presentacion('hola')">texto</a>

funcionará perfectamente
Si hago un document.write tengo que poner comillas dobles al conjunto y por tanto sustituir por simples el onMouseOver, pero entonces me quedo sin comillas para 'hola' es decir, la cadena que le mando a la función "presentación". Es decir, que tengo que enviar una cadena dentro de una cadena que, a su vez, está dentro de otra cadena y como no tengo tres niveles de comillas no sé cómo solucionarlo.
Una solución es eliminar un nivel de entrecomillado pero no sé cómo.
Todo esto supone lo siguiente:

document.write("<a onMouseOver='presentacion('hola')'>texto</a>")

Esto no funcionará porque 'hola' genera un problema de entrecomillado, pero es una cadena y debería ir entre comillas.
Supongo que si soluciono este problema podría solucionar el caso que os planteo.

Gracias por vuestra ayuda.
¡Salud!
  #4 (permalink)  
Antiguo 14/07/2008, 02:16
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
De acuerdo Respuesta: principiantes - me faltan comillas

lo que no se es porque usas el document.write y no usas el DOM para insertar elementos dinamicamente.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
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 20:55.