如何在点击 href 时添加 ID

How to add ID on click of a href

在我的项目中,我有不同类型的光照类别。每个类别都有其 ID。现在在我的 UI 中,如果我 select 特定类别,它的图片应该显示在转发器中。我不知道如何在 href 标签中提供 ID。

我的HTML:

<ul class="filter text-center">
            <li><a data-cat="all" href="#All" class="active">All</a></li>
            <li><a data-cat="Dynamite" href="#DynamiteLounge">Dynamite Lounge</a></li>
            <li><a data-cat="Morsel" href="#Morsel">The Morsel Restaurant & Banquet</a></li>
            <li><a data-cat="Shagun" href="#Shagun">Shagun Hotel</a></li>
            <li><a data-cat="Shops" href="#Shops">Shops</a></li>
            <li><a data-cat="Bunglows" href="#Bunglows">Bunglows</a></li>
        </ul>

<div class="bf-single-item" id="All">
        <asp:PlaceHolder ID="plcAll" runat="server">
        <asp:Repeater ID="rptrAll" runat="server">
        <ItemTemplate>
        <div class="bf-single-item">
        <asp:Image ID="imgAll" runat="server" ImageUrl='<%# Eval("ImageAll")%>' />
        <div class="caption">
                        <%--<div class="cap-in">
                            <h3>
                                CN Lighting</h3>
                                <div class="bflink-preview">
                                <a href='<%# Eval("ImageAll") %>' rel="prettyPhoto">Zoom In</a>
                            </div>--%>
        </div>
        </ItemTemplate>
        </asp:Repeater>
        </asp:PlaceHolder>
        </div>

<div class="bf-single-item" id="DynamiteLounge">
        <asp:PlaceHolder ID="plcDynamiteLounge" runat="server">
        <asp:Repeater ID="rptrDynamiteLounge" runat="server">
        <ItemTemplate>
        <div class="bf-single-item">
        <asp:Image ID="imgDynamiteLounge" runat="server" ImageUrl='<%# Eval("ImageDynamiteLounge") %>' />
        <div class="caption">
                        <div class="cap-in">
                            <h3>
                                CN Lighting</h3>
                                <%--<div class="bflink-preview">
                                <a href='<%# Eval("ImageAll") %>' rel="prettyPhoto">Zoom In</a>
                            </div>--%>
        </div>
        </ItemTemplate>
        </asp:Repeater>
        </asp:PlaceHolder>
        </div>

.

.

.

在这段代码中,如您所见,我在 <li> 中有 <a href 并且我将 href 作为 div Ids 给出。见图像。如何通过ID?

标记

<asp:LinkButton runat="server" Text="All" OnClick="LinkButton_Click"></asp:LinkButton>
protected void LinkButton_Click(object sender, EventArgs e)
{
    var id = (sender as LinkButton).Attributes["data-cat"];

    if(id == "All")
        DoSomething();
}

在后面的代码中无法像这样检索您的 id,但是 ASP.NET 4 中有 Control.ClientID 属性 可以帮助您。

假设您想要这个客户端

document.getElementsByTagName('a').forEach(function(elem){
    elem.addEventListened(click_handler);
});

function click_handler(){
    var id = this.id;
    if(id == 'All')
        doSomething();
}

假设您知道 Array.prototype.forEach 方法