C# Jquery按ID选择li之外的元素

C# Jquery按ID选择li之外的元素,c#,jquery,asp.net,toggle,C#,Jquery,Asp.net,Toggle,我希望通过id toggleThisDiv选择follow元素。标记看起来像: <li id="liCategory" runat="server"> <asp:HyperLink ID="lnkCategory" runat="server"> <span><asp:Literal ID="litCategory" runat="server" Visible="true" /></span>

我希望通过id toggleThisDiv选择follow元素。标记看起来像:

 <li id="liCategory" runat="server">
       <asp:HyperLink ID="lnkCategory" runat="server">
       <span><asp:Literal ID="litCategory" runat="server" Visible="true" /></span>
       <asp:Image ID="imgMan" runat="server" Visible="false" /></asp:HyperLink>
       <asp:Button ID="btnToggleDiv" runat="server" Text="+" Visible="false" />
 </li>

 <div id="toggleThisDiv" runat="server" style="display:none;margin-top:-16px;">
当按钮在listitem之外,但这都在一个中继器内时,这种方法就可以工作了。如果我这样离开它,所有创建的按钮将彼此相邻,而不是在它们关联的列表项内

我正在jQuery中寻找允许我选择下一个div toggleThisDiv的东西,这可能吗


谢谢

使用类似的方法选择toggleThisDiv

$('#<%= toggleThisDiv.ClientID %>')
当网站由asp代码生成时,您的ID将与您提供的ID不同。这是因为它们是在服务器上运行的。无论何时使用runat server,都可以使用上面的格式查找生成的ID


不过,您应该在内部使用一个类来转发器。

如果要生成使用相同标识符的元素,请使用唯一ID或类

要将某个元素定位在所单击元素的当前父元素之外,可以找到与选择器匹配的最近父元素,然后找到下一个元素等

$(document).ready(function () {
   $('[class*="btnToggleDiv"]').on('click', function () {
       $(this).closest('li').next('div').slideToggle(100);
       return false;
   });
});

这非常非常简单,ID是唯一的,所以只要$toggleThisDiv就足以选择正确的元素,否则您就做错了。选择器是错误的,但它会选择中继器中的所有div,单击按钮会隐藏/显示其中的每个div您似乎没有得到它,问题是“没有选择下一个具有该特定ID的元素,问题是您正在生成具有相同ID的多个元素。无论如何,$this.closest'li'。next'toggleThisDiv'。slideToggle100?是否有一种方法可以选择唯一的客户端id,否则会影响渲染出来的所有div。不过你的解决方案很有效,谢谢。谢谢,我不知道
$(document).ready(function () {
   $('[class*="btnToggleDiv"]').on('click', function () {
       $(this).closest('li').next('div').slideToggle(100);
       return false;
   });
});