【问题标题】:Toggle Div tag inside a datalist在数据列表中切换 Div 标签
【发布时间】:2015-10-10 16:51:18
【问题描述】:
<asp:DataList ID="dlDataList" runat="server">
        <ItemTemplate>
            <p>
                <h4>
                    <div class="ntitle" id='<%# Eval("Email_ID") %>'>
                        <asp:Label ID="Label30" runat="server" Text='<% #Eval("Departure_Country") %>'></asp:Label>
                        -
                        <asp:Label ID="Label31" runat="server" Text='<% #Eval("Arrival_Country") %>'></asp:Label>
                    </div>
                </h4>
            </p>
            <div class="ncontent" id='d<%# Eval("Email_ID") %>'>
                <asp:Label ID="Label32" runat="server" Text="Company Name" Width="250px"></asp:Label>
                <asp:Label ID="Label33" runat="server" Text='<% #Eval("comp_name") %>'></asp:Label>
                <br />
                <asp:Label ID="Label34" runat="server" Text="Contact Person" Width="250px"></asp:Label>
                <asp:Label ID="Label35" runat="server" Text='<% #Eval("contact_person") %>'></asp:Label>
                <br />
                `enter code here`
            </div>
            <script language="JavaScript" type="text/javascript">
                $("div.ntitle").click(function () {
                    debugger;
                    // $(this).closest('div').next('.ncontent').slideToggle();
                    $(this).next('.ncontent').slideToggle();
                });
            </script>

我有一个带有两个 div 标签的数据列表。我用javascript编写代码以单击一个div,它会切换相关的下一个div。当我单击具有类名 ntitle 的第一个 div 时,它不会切换具有类“ncontent”的下一个 div 标签。

【问题讨论】:

  • 你点击类名为 ntitle 的 div,它应该用类 n 的内容切换下一个 div 标签吗?
  • 是的。我想在点击 ntitle 时切换下一个 div ncontent
  • 你可以使用这个链接作为参考stackoverflow.com/questions/17460116/…
  • 从数据库中获取的记录有 10 条。我想只用类名“ncontent”的相关div来切换。
  • 我只看到这个链接。有多种解释。我之前尝试过其中一些。但没用。

标签: javascript jquery asp.net


【解决方案1】:

jQuery next 函数找到紧随其后的元素兄弟(或者如果选择器被传递的话)并且这里你的ncontent div 不是ntitle 的兄弟。此外,由于它是一个DataList 控件,它会动态地重复。所以在这里你可以找到父row(由DataList控件渲染)并将其作为上下文来查找ncontent div。这将按预期工作:-

$(document).ready(function () {
    $(".ntitle").click(function () {
         var parentRow = ($(this).parents('tr')); //find the parent row
         $('div.ncontent', parentRow).slideToggle(); //find ncontent div inside that row
    });
});

【讨论】:

  • 对此有一个疑问,我没有写任何“table”或“tr”,那么这段代码如何在这里找到Parent“tr”。
  • @vipul - 嘿,这就是我在回答中写的,ASP.NET DataList 控件呈现为 html 表。页面加载后,只需检查页面源,你就会明白。
猜你喜欢
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
  • 1970-01-01
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多