使用Jquery查找页面上有多个列表视图的正确ListView客户端ID

使用Jquery查找页面上有多个列表视图的正确ListView客户端ID,jquery,asp.net,listview,Jquery,Asp.net,Listview,在我的网站中,我有一个包含2个listview的页面,每个listview包含多个div,对于每个div,我实施click事件,以便我可以将样式更改为所选的div,但这两个listview都会发生更改。我如何确保单击div时,只有父listview会受到影响?这是我的密码: <asp:ListView ID="ListView1" runat="server"> <LayoutTemplate> <div id="itemPlaceholder" runat

在我的网站中,我有一个包含2个listview的页面,每个listview包含多个div,对于每个div,我实施click事件,以便我可以将样式更改为所选的div,但这两个listview都会发生更改。我如何确保单击div时,只有父listview会受到影响?这是我的密码:

<asp:ListView ID="ListView1" runat="server">
 <LayoutTemplate>
   <div id="itemPlaceholder" runat="server"></div> 
 </LayoutTemplate>
  <ItemTemplate>
         <div class="box" runat="server"></div> 
         <div class="selectedBox" runat="server"></div>
         <div class="box" runat="server"></div>
         <div class="box" runat="server"></div>
  </ItemTemplate>
</asp:ListView>

    <asp:ListView ID="ListView2" runat="server">
     <LayoutTemplate>
       <div id="itemPlaceholder" runat="server"></div> 
     </LayoutTemplate>
      <ItemTemplate>
             <div class="box" runat="server"></div> 
             <div class="selectedBox" runat="server"></div>
             <div class="box" runat="server"></div>
             <div class="box" runat="server"></div>
      </ItemTemplate>
    </asp:ListView>

    <script type="text/javascript">
        $(".box").click(function () {
        $(this).siblings().removeClass("selectedBox");
        $(this).addClass("selectedBox");
        });
    </script>
这将为您提供对listview生成的HTML控件的引用

您还可以使用:

$(this).parents("ul");

希望这能有所帮助:

我认为您的jQuery没有问题。请看一下我的考试。但是,将不会渲染在Layouttemplate中使用的div。在ItemTemplates中添加一个周围的div,这样就可以了

$(this).parents("ul");