1

我有一个 asp:Menu,其中目前有 4 个菜单项。我已经能够为整个菜单设置 id,但菜单项的超链接大多相同。我希望能够使用 Id 或类似名称来识别每个人。这可能吗?

这是我的菜单:

<asp:Menu ID="NavigationMenu" runat="server" Orientation="Horizontal" 
          OnMenuItemClick="NavigationMenu_OnMenuItemClick"
          CssClass="Menu">
          <StaticMenuItemStyle ForeColor="Black" CssClass="MenuItem" ItemSpacing="20" />
          <StaticSelectedStyle CssClass="MenuItemSelected"></StaticSelectedStyle>
          <Items>
              <asp:MenuItem Value="0" Text="New" Selected="True"></asp:MenuItem>
              <asp:MenuItem Value="1" Text="Approved"></asp:MenuItem>
              <asp:MenuItem Value="2" Text="Rejected"></asp:MenuItem>
              <asp:MenuItem Value="3" Text="Done"></asp:MenuItem>
          </Items>
</asp:Menu>

这是第二个和第三个菜单项在浏览器中的结果(当前未选中)

<a class="NavigationMenu_1 MenuItem NavigationMenu_3" href="javascript:__doPostBack('NavigationMenu','2')" style="border-style:none;font-size:1em;">Rejected</a>


<a class="NavigationMenu_1 MenuItem NavigationMenu_3" href="javascript:__doPostBack('NavigationMenu','3')" style="border-style:none;font-size:1em;">Done</a>

如您所见,它们非常相似。有什么解决办法吗?

4

1 回答 1

0

我们无法为菜单项分配 id

您可以通过以下模式使用 javascript 获取“菜单对象”。

var myMenu = document.getElementById("MyMenu");

如果您检查呈现的 HTML,您会看到它呈现为一个表格(ID 为 MyMenu),并且每个项目都有一个元素。

因此,您可以像这样隐藏/显示任何元素:

document.getElementById("MyMenu").tBodies[0].rows[0].style.display = "none";

这是关于表格 DOM 元素的一个很好的教程:

http://www.howtocreate.co.uk/tutorials/javascript/domtables

桌子

caption
    childNodes[] 
tHead
    rows[]
        cells[]
            childNodes[]
tFoot
    rows[]
        cells[]
            childNodes[]
tBodies[]
    rows[]
        cells[]
            childNodes[]
于 2013-05-14T09:00:42.353 回答