0

我正在开发 MVC 应用程序并使用剃刀语法。

在这个应用程序中,我提供评论功能。

我用

显示评论

<p id="ClassPara" class="ShowComments" onclick="chkToggle()">Show Comments</p>

现在,当用户单击“显示评论”时,我切换了Div,在该 div 中显示评论。

现在,我想将段落的文本从“显示评论”更改为“隐藏评论”,当用户点击该段落时。

但我无法将文本更改为“隐藏评论”...它一直显示“显示评论”怎么做?

我的代码是....

<script src="../../Scripts/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $(".ShowComments").click(function () {
            $(".ParentBlock").slideToggle("slow");
            if ($('.ShowComments').text = "Show Comments"
            {
               $('.ShowComments').text('Hide');
            }
            else
            {
               $('.ShowComments').text('Show Comments');
            }
        });
    });
</script>
4

2 回答 2

1

.text 不是属性而是方法

.text("显示评论") 或 .text("隐藏评论")

为了比较它的 .text() === "Show Comments"

更新了您的代码并修复了一些错误。

<script src="../../Scripts/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $(".ShowComments").click(function () {
            $(".ParentBlock").slideToggle("slow");
            if ($('.ShowComments').text() === "Show Comments")
            {
               $('.ShowComments').text('Hide');
            }
            else
            {
               $('.ShowComments').text('Show Comments');
            }
        });
    });
</script>

您还在 if 条件中使用了赋值运算符而不是比较运算符。== 或 === 不是 =

于 2012-09-15T06:35:22.123 回答
1

您可以使用回调函数来执行.text()如下方法并简化代码。

$(document).ready(function() {
    $(".ShowComments").click(function() {

        $(".ParentBlock").slideToggle("slow");

        // here instead of .ShowComments you should use
        // this, where this refers to clicked element

        $(this).text(function(i, oldText) {
            return oldText == 'Show Comments' ? 'Hide' : 'Show Comments';
        });
    });
});​
于 2012-09-15T06:50:58.597 回答