Jquery如果包含文本

本文关键字:文本 包含 如果 Jquery | 更新日期: 2023-09-27 18:03:37

我正在使用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>

我可以让它在加载时更改为注销页面。然而,它永远不会触发else语句我试了不同的关键词,都没有用

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

Jquery如果包含文本

Else-Block永远不会运行,因为jQuery方法。text("String")设置了它所调用的结果列表的文本,并返回了相同的结果列表。所以在你的例子中,这总是为真,因为非空列表的值为真。

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

你应该这样改变你的条件:

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