Javascript 如果菜单项存在,则显示或隐藏与jQuery的链接

Javascript 如果菜单项存在,则显示或隐藏与jQuery的链接,javascript,jquery,dotnetnuke,Javascript,Jquery,Dotnetnuke,我想检查我的菜单是否包含菜单项“Admin” Admin是父菜单项的名称。当用户登录时,他们可以看到管理菜单 我的菜单css路径如下所示: div.toppane div.logopane div.menupane ul.sf-menu li a 如果是这样,那么我想显示以下链接 <a href="/en-us/aboutus/abgroup.aspx?ctl=logoff" id="Logoff" />Logoff</a> 但如果“admin”不存在,则我需要显

我想检查我的菜单是否包含菜单项“Admin”

Admin是父菜单项的名称。当用户登录时,他们可以看到管理菜单

我的菜单css路径如下所示:

div.toppane div.logopane div.menupane ul.sf-menu li a
如果是这样,那么我想显示以下链接

<a href="/en-us/aboutus/abgroup.aspx?ctl=logoff" id="Logoff" />Logoff</a>

但如果“admin”不存在,则我需要显示此链接:

<a href="/en-us/aboutus/abgroup.aspx?ctl=login" id="Login" />Login</a>

您的问题中缺少DOM结构:(,所以我将尝试一下

if ($('div.toppane div.logopane div.menupane ul.sf-menu')
    .has('ul.sf-menu li a')){
     $('#Logoff').show();
}
else{
     $('#Login').show();
}
或者管理员的东西是什么样子的,只要把它放在
has
中就可以了


更新:

“admin”是一个字符串值。所以假设我需要检查菜单中的值

使用
is
+
:has
+
:containes

if ($('div.toppane div.logopane div.menupane ul.sf-menu')
     .is(':has(a:contains(Admnin))')) {`

您不应该使用jQuery来确定导航项,而应该在服务器端完成。如果禁用Javascript会发生什么?最好使用if语句检查是否设置了“admin”,并根据需要更改链接。

这确实是您应该在服务器端做的事情,假设“admin”指的是某种登录授权帐户。admin是一个菜单项。我的DNN安装的一部分已损坏。重定向似乎有效。我只需要整理一下。admin是父菜单项的名称。“admin”是一个字符串值。因此,假设我需要检查菜单中的值?@sp-1986.:
.contains(“admin”)
@sp-1986。你能告诉我们你的菜单看起来像“admin”字符串吗?@sp-1986。完整的DOM结构请…它是
admin
还是
admin
?这很重要!修复了它。我从css路径中删除了A,我可以看到你正在包含中检查它!非常感谢