2012-06-01 137 views
2

我想点击链接“添加其他评论”来显示文本区域并将文本切换为“删除评论”。当单击“删除评论”时,它应该隐藏文本区域,文本需要更改为“添加其他评论”。jQuery切换div和切换文本

我使用的代码

<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> 

的HTML是

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

文本切换不工作。

任何帮助表示赞赏。

回答

6

工作演示http://jsfiddle.net/eDNH5/10/

这将帮助你!

的问题是你使用赋值运算符,而不是平等==

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"); 
     } 
    }); 
});​ 
+0

非常感谢你 – Paramasivan

+0

@Paramasivan很高兴我可以帮助:) –

0

你要排队一个错误:

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

应该是:

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

你是否错了。更换

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

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

你正在做的任务,而不是在这条线的比较:

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

希望此相反:

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

,如果你想要检查块是否是可见更改文本:

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

即时通讯使用这个,因为你已经抬头#addcmt一次没有必要真的再次找到该元素。

+0

非常感谢。 – Paramasivan