1

現在 4 つのメニュー項目がある asp:Menu があります。メニュー全体の 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>

これは、2 番目と 3 番目のメニュー項目 (現在選択されていない) のブラウザーでの結果です。

<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 を持つ) としてレンダリングされ、すべての項目に対して 1 つの要素であることがわかります。

したがって、次のように要素を非表示/表示できます。

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

以下は、テーブル 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 に答える