jQuery alternar div y alternar texto

Quiero hacer el enlace "Agregar comentario adicional" cuando se hace clic para mostrar un área de texto y el texto para alternar como "Eliminar comentario". Cuando se hace clic en "Eliminar comentario", debe ocultar el área de texto y el texto debe cambiar como "Agregar comentario adicional".

El código que utilicé es

<script type="text/javascript">
$(document).ready(function( ){
$("#addcmt").click(function( )
{
$(".commentarea").toggle( );
if ($("#addcmt").text = "Add additional comment") {
     $("#addcmt").text("Remove comment");
  }
else {
   $("#addcmt").text("Add additional comment");
 }
});
});
</script>

El html es

<div class="addlcomment">
  <a id="addcmt">Add additional comment</a>
 </div>
 <div class="commentarea" style="display:none;">
     <textarea name="strcomments1" tabindex="2"></textarea>
 </div>

El cambio de texto no funciona.

Cualquier ayuda se agradece.

preguntado el 01 de junio de 12 a las 13:06

5 Respuestas

demostración de trabajo http://jsfiddle.net/eDNH5/10/

¡Esto te ayudara!

el problema era que estabas usando el operador de asignación en lugar de la igualdad ==

Código jquery

$(document).ready(function() {
    $("#addcmt").click(function() {
        $(".commentarea").toggle();
        if ($("#addcmt").text() == "Add additional comment") {
            $("#addcmt").text("Remove comment");
        }
        else {
            $("#addcmt").text("Add additional comment");
        }
    });
});​

Respondido el 01 de junio de 12 a las 13:06

si desea verificar si el bloque está visible para cambiar el texto:

$(document).ready(function() {
    $("#addcmt").click(function() {
        var isVisible = $(".commentarea").toggle().is(":visible");
        $(this).text( isVisible ? "Remove comment" : "Add additional comment");
    });
});

Estoy usando esto porque ya buscó #addcmt una vez que realmente no necesita encontrar ese elemento una vez más.

Respondido el 01 de junio de 12 a las 13:06

Tienes un error en la línea:

if ($("#addcmt").text = "Add additional comment") {

Debería ser:

if ($("#addcmt").text() == "Add additional comment") {

Respondido el 01 de junio de 12 a las 13:06

Tu si está mal. Reemplazar

if ($("#addcmt").text = "Add additional comment")

if ($("#addcmt").text == "Add additional comment")

Respondido el 01 de junio de 12 a las 13:06

Estás haciendo una tarea en lugar de una comparación en esta línea:

    if ($("#addcmt").text = "Add additional comment") {

Quieres esto en su lugar:

    if ($("#addcmt").text == "Add additional comment") {

Respondido el 01 de junio de 12 a las 13:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.