jquery如果包含文本

时间:2014-05-16 15:19:55

标签: c# jquery asp.net-mvc-5

我正在使用asp MVC 5创建一个登录/关闭按钮我已经设置好了,如果有人登录,会话[" isLoggedIn"]会显示不同的文本。

现在我需要编写JQuery代码,分别为登录页面或注销添加href。

这是我的Jquery

<script type="text/javascript">
    $(document).ready(function () {
        if ($("#loginLogoff").text("sign out"))
            $("#loginLogoff").attr("href", "javascript:document.getElementById('logoutForm').submit()");
        else 
            $("#loginLogoff").attr("href", "/Home#login_popup");
    });
</script>

我可以在加载时将其更改为注销页面。然而,它并没有触发其他声明  我尝试过不同的关键词,但都无济于事

.val()
.text()
.html() 

html块在c#

中看起来像这样
<li style="padding-top:10px;text-align:right;"><strong>@Session["LoginStatus"]</strong> | <a id="loginLogoff" style="display:inline;"> @Session["logInOffToggle"]</a></li>

并使用格式化的html

<li style="padding-top:10px;text-align:right;"><strong>not Logged In</strong> | <a id="loginLogoff" style="display:inline;"> Login</a></li>

1 个答案:

答案 0 :(得分:2)

Else-Block永远不会运行,因为jQuery方法.text(&#34; String&#34;)设置调用它的结果列表的文本并返回相同的结果列表。所以在你的情况下,这总是正确的,因为非空列表的评估为真。

您希望使用不带参数的.text()方法来获取文本。

你应该像这样改变你的状况:

if ( $("#loginLogoff").text() === "sign out" ) {
    ...
}