Foros del Web » Programando para Internet » Javascript »

Cambiar texto alternativamente de un <span>

Estas en el tema de Cambiar texto alternativamente de un <span> en el foro de Javascript en Foros del Web. Hola, no se nada de JavaScript (tengo nociones de Java) y tengo un problema con una función sencilla que no me funciona. En mi HTML ...
  #1 (permalink)  
Antiguo 08/06/2012, 03:36
 
Fecha de Ingreso: mayo-2012
Ubicación: Palma de Mallorca
Mensajes: 71
Antigüedad: 11 años, 11 meses
Puntos: 1
Cambiar texto alternativamente de un <span>

Hola, no se nada de JavaScript (tengo nociones de Java) y tengo un problema con una función sencilla que no me funciona.

En mi HTML tengo un <span> cuyo texto es ver más [...] y quiero cambiarlo de forma alternativa con ocultar [...] al pulsar sobre el mismo. Dicho <span> tiene un controlador de evento onmousedown="mostrarocultar('depresion1')" (ya os imafgináis lo que hace esta función) y otro onclick="cambiaretiqueta1()". Este último es el que no me funciona.

Este es mi código:

Código:
 <script type="text/javascript">
 function cambiaretiqueta1(){
  if (this.innerHTML=='ver más [...]') {   /*si el texto del span es 'ver más [...]'*/
	this.innerHTML='ocultar [...]';     /*entonces se cambia dicho texto a ocultar [...]*/
  }
  else{
	this.innerHTML='ver más [...]';     /*en caso contrario se cambia nuevamente a ver más [...]*/
  }
 }/*fin de cambiaretiqueta1*/
 </script>
Me sabéis decir por que no funciona.

Gracias a todos.

Un Saludo,

GMG.
  #2 (permalink)  
Antiguo 08/06/2012, 03:55
Avatar de YYs86  
Fecha de Ingreso: abril-2012
Ubicación: Salamanca
Mensajes: 136
Antigüedad: 12 años
Puntos: 14
Respuesta: Cambiar texto alternativamente de un <span>

Si no te importa usar JQuery la opción es bastante sencilla.

Código Javascript:
Ver original
  1. <span class="seemore" onlick="cambiarstatus()">Leer mas...</span>
  2.  
  3. function cambiarstatus(){
  4.  
  5. if($('.capaoculta:hidden')){
  6.  
  7. $('.seemore').html('');
  8. $('.seemore').html('Ocultar...');
  9. $('.capaoculta').show();
  10.  
  11. }else{
  12.  
  13. $('.seemore').html('');
  14. $('.seemore').html('Leer mas...');
  15. $('.capaoculta').hide();
  16.  
  17. }
  18.  
  19. }
__________________
Web developer:

http://xtremgaming.es
http://leaderleague.com
  #3 (permalink)  
Antiguo 08/06/2012, 04:58
 
Fecha de Ingreso: mayo-2012
Ubicación: Palma de Mallorca
Mensajes: 71
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Cambiar texto alternativamente de un <span>

Bueno, la verdad es que apenas estoy empezando a mirar algunas funciones (por necesidad, más que nada) de JavaScript.

Preferiría una solución sin usar bibliotecas, por eso de no meterme en demasiados asuntos al mismo tiempo. Una vez entienda bien la base de JavaScript, entonces, me meteré a ver otras herramientas.

Gracias por la respuesta en cualquier caso.

Si alguien sabe con JS sin usar biblios le agradeceré mucho su ayuda.

Saludos,

GMG.
  #4 (permalink)  
Antiguo 08/06/2012, 13:12
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Respuesta: Cambiar texto alternativamente de un <span>

Sólo porque no escribiste "librería"

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title></title>
<script type="text/javascript">
function cambiaretiqueta1(T){
  if (T.innerHTML=='ver más [...]') {  
	T.innerHTML='ocultar [...]';  
  }
  else{
	T.innerHTML='ver más [...]'; 
  }
 }
 
</script>
<style type="text/css">

</style>
</head>
<body>
<span onclick="cambiaretiqueta1(this)" 
style="cursor:pointer; background:yellow">ver más [...]</span>
</body>
</html>
  #5 (permalink)  
Antiguo 08/06/2012, 13:30
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Cambiar texto alternativamente de un <span>

@gmonterog

Viendo en conjunto tu idea, tal vez te interese esto
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Mostrar ocultar capas cambiando valor del texto</title>
  5. <meta name="description" content="Mostrar ocultar capas cambiando valor del texto" />
  6. <style type="text/css">
  7. /*<![CDATA[*/
  8. #oculta1,#oculta2 {
  9. display: none;
  10. width: 180px;
  11. font-family: arial, serif;
  12. padding: 15px 5px;
  13. border: dotted 1px #554F9D;
  14. background-color:#A3AD76;
  15. font-size: 10pt;
  16. margin-top: 3px;
  17. margin-bottom:20px;
  18. }
  19. p{
  20. font-weight: bold;
  21. font-size: 11pt;
  22. width: 180px;
  23. cursor: pointer;
  24. font-family: arial, serif;
  25. padding: 5px;
  26. border: dotted 1px #554F9D;
  27. margin-bottom: 2px;
  28. margin-top: 3px;
  29. }
  30. .oculta1, .oculta2{
  31. display: inline-block;
  32. width: 100%;
  33. height: 100%;
  34. }
  35. /*]]>*/
  36. <script type="text/javascript">
  37. //<![CDATA[
  38. /* Configurar */
  39. var tn = "Ocultar"; // Texto para cuando la capa esté visible
  40. var tb = "Mostrar"; // Texto para cuando la capa esté oculta
  41. /* No Editar */
  42. var tags_span = new Array();
  43. function cTxt(laclase,eltexto,propiedad) {
  44. var tags_span=document.getElementsByTagName('span');
  45. for (i=0; i<tags_span.length; i++) {
  46. if (tags_span[i].className==laclase) {
  47. var texto = eltexto;
  48. tags_span[i].innerHTML= texto;
  49. }
  50. }
  51. document.getElementById(laclase).style.display = propiedad;
  52. }
  53.  
  54. function m_o(cdv) {
  55. var e = document.getElementById(cdv);
  56. e.style.display =(e.style.display=="block")?cTxt(cdv,tb,'none'):cTxt(cdv,tn,'block');
  57. }
  58. //]]>
  59. </head>
  60. <p><span class="oculta1" onclick="m_o('oculta1');">Mostrar</span></p>
  61. <div id="oculta1">
  62. Christus eum filiam sum cum suam non coepit, mytilenam cuius ampullam ungues dotis quare quae vero non coepit
  63. </div>
  64. <p><span class="oculta2" onclick="m_o('oculta2');">Mostrar</span></p>
  65. <div id="oculta2">
  66. Lorem ipsum dolor sit amet, jesu Dionysiadem tuos ratio indue villicus potest in fuerat
  67. </div>
  68. </body>
  69. </html>

Si lo analizás no es dificil de ver su funcionamiento

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 08/06/2012, 14:20
 
Fecha de Ingreso: mayo-2012
Ubicación: Palma de Mallorca
Mensajes: 71
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Cambiar texto alternativamente de un <span>

Entiendo furoya. Así que el "this" hay que pasarlo como parámetro desde el controlador de evento. Está claro. Lo pruebo y te digo que tal.

Gracias otra vez por tu sabiduría.

Un saludo,

GMG.


Cita:
Iniciado por furoya Ver Mensaje
Sólo porque no escribiste "librería"

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title></title>
<script type="text/javascript">
function cambiaretiqueta1(T){
  if (T.innerHTML=='ver más [...]') {  
	T.innerHTML='ocultar [...]';  
  }
  else{
	T.innerHTML='ver más [...]'; 
  }
 }
 
</script>
<style type="text/css">

</style>
</head>
<body>
<span onclick="cambiaretiqueta1(this)" 
style="cursor:pointer; background:yellow">ver más [...]</span>
</body>
</html>
  #7 (permalink)  
Antiguo 08/06/2012, 14:31
 
Fecha de Ingreso: mayo-2012
Ubicación: Palma de Mallorca
Mensajes: 71
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Cambiar texto alternativamente de un <span>

Hola emprear:

Tiene buena pinta, pero me costará un poco más analizarlo. El tema de los arrays no lo domino mucho. Haré un esfuerzo por entenderlo y seguro que me ayudará a aprender algo más.

Gracias otra vez.

GMG.


Cita:
Iniciado por emprear Ver Mensaje
@gmonterog

Viendo en conjunto tu idea, tal vez te interese esto
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Mostrar ocultar capas cambiando valor del texto</title>
  5. <meta name="description" content="Mostrar ocultar capas cambiando valor del texto" />
  6. <style type="text/css">
  7. /*<![CDATA[*/
  8. #oculta1,#oculta2 {
  9. display: none;
  10. width: 180px;
  11. font-family: arial, serif;
  12. padding: 15px 5px;
  13. border: dotted 1px #554F9D;
  14. background-color:#A3AD76;
  15. font-size: 10pt;
  16. margin-top: 3px;
  17. margin-bottom:20px;
  18. }
  19. p{
  20. font-weight: bold;
  21. font-size: 11pt;
  22. width: 180px;
  23. cursor: pointer;
  24. font-family: arial, serif;
  25. padding: 5px;
  26. border: dotted 1px #554F9D;
  27. margin-bottom: 2px;
  28. margin-top: 3px;
  29. }
  30. .oculta1, .oculta2{
  31. display: inline-block;
  32. width: 100%;
  33. height: 100%;
  34. }
  35. /*]]>*/
  36. <script type="text/javascript">
  37. //<![CDATA[
  38. /* Configurar */
  39. var tn = "Ocultar"; // Texto para cuando la capa esté visible
  40. var tb = "Mostrar"; // Texto para cuando la capa esté oculta
  41. /* No Editar */
  42. var tags_span = new Array();
  43. function cTxt(laclase,eltexto,propiedad) {
  44. var tags_span=document.getElementsByTagName('span');
  45. for (i=0; i<tags_span.length; i++) {
  46. if (tags_span[i].className==laclase) {
  47. var texto = eltexto;
  48. tags_span[i].innerHTML= texto;
  49. }
  50. }
  51. document.getElementById(laclase).style.display = propiedad;
  52. }
  53.  
  54. function m_o(cdv) {
  55. var e = document.getElementById(cdv);
  56. e.style.display =(e.style.display=="block")?cTxt(cdv,tb,'none'):cTxt(cdv,tn,'block');
  57. }
  58. //]]>
  59. </head>
  60. <p><span class="oculta1" onclick="m_o('oculta1');">Mostrar</span></p>
  61. <div id="oculta1">
  62. Christus eum filiam sum cum suam non coepit, mytilenam cuius ampullam ungues dotis quare quae vero non coepit
  63. </div>
  64. <p><span class="oculta2" onclick="m_o('oculta2');">Mostrar</span></p>
  65. <div id="oculta2">
  66. Lorem ipsum dolor sit amet, jesu Dionysiadem tuos ratio indue villicus potest in fuerat
  67. </div>
  68. </body>
  69. </html>

Si lo analizás no es dificil de ver su funcionamiento

Saludos
  #8 (permalink)  
Antiguo 08/06/2012, 15:06
 
Fecha de Ingreso: mayo-2012
Ubicación: Palma de Mallorca
Mensajes: 71
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Cambiar texto alternativamente de un <span>

Perfecto como explicó furoya. Funciona a las mil maravillas así que caso cerrado.

Saludos,

GMG.

Etiquetas: funcion, html
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 12:54.