2012-05-02 98 views
0

我想檢查我的菜單是否包含菜單項「管理員」。如果菜單項存在顯示或隱藏鏈接與jQuery

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

這裏的ADMIN在哪裏? –

+1

這真的是你應該做的服務器端的事情,假設'管理員'指的是某種登錄授權帳戶。 –

+0

admin是一個菜單項。我的部分DNN安裝已損壞。和重定向似乎工作。我只需要整理它。 Admin是父菜單項的名稱。 –

回答

1

您的問題缺少DOM結構! :(,所以我給它一個嘗試...

if ($('div.toppane div.logopane div.menupane ul.sf-menu') 
    .has('ul.sf-menu li a')){ 
    $('#Logoff').show(); 
} 
else{ 
    $('#Login').show(); 
} 

或管理員的事情是什麼樣子,只是把它放在has ...


更新:

「管理員」是一個字符串值。所以假設我需要檢查在菜單中的值?

使用is + :has + :containes

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

「admin」是一個字符串值。所以假設我需要檢查菜單中的值? –

+0

@ sp-1986。 :'.contains(「admin」)' – gdoron

+0

@ sp-1986。你能告訴我們你的菜單看起來像「管理員」字符串嗎? – gdoron

-1

您不應該使用jQuery來確定導航項目,而應該在服務器端完成。如果我禁用Javascript會發生什麼?如果設置了「admin」並根據需要更改鏈接,那麼最好有一個IF語句檢查。