Javascript 显示';。隐藏的';使用JQUERY的元素
我有以下asp和HTML代码:Javascript 显示';。隐藏的';使用JQUERY的元素,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我有以下asp和HTML代码: <asp:Repeater ID="PervousResultsList" runat="server" EnableViewState="False"> <ItemTemplate> <div class="row1"> <table style="cursor: pointer; width: 100%">
<asp:Repeater ID="PervousResultsList" runat="server" EnableViewState="False">
<ItemTemplate>
<div class="row1">
<table style="cursor: pointer; width: 100%">
<tr>
<td rowspan="4">
<asp:Image ID="Image1" ImageUrl="~/Images/pushpinred.png" runat="server" Width="32"
Height="32" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td rowspan="7">
<input type="button" class="toggleRow" value="B" style="height: 30px; position: relative; float: left;" />
</td>
</tr>
<tr>
<td>text:</td>
<td rowspan="4">
<h1 style="color: gray"><%# Eval("Text") %></h1>
</td>
</tr>
<tr class="hidden">
<td>text:</td>
<td><%# Eval("Text") %></td>
</tr>
<tr class="hidden">
<td>X:</td>
<td><%# Eval("Lon") %></td>
</tr>
<tr class="hidden">
<td>Y:</td>
<td><%# Eval("Lat") %></td>
</tr>
<tr>
</table>
</div>
</ItemTemplate>
</asp:Repeater>
当batten with class toggleRow单击javascript时,我没有得到任何结果(即,我希望显示隐藏行,但不显示隐藏行)
你知道为什么吗?因为你有一个
表和tr
,即使你没有创建tbody
,浏览器会把所有tr
元素放在tbody
中,所以你的选择器$(this.closest('table')。children('hidden').show()代码>将无法找到tr
作为able的子级
所以试试看
$(this).closest('table').find('tr.hidden').show();
您还必须将toggleRow
类添加到按钮中
<input type="button" id="btnToggleRow" value="B" style="height: 30px; position: relative; float: left;" class="toggleRow"/>
要显示隐藏的行,请在代码下方使用
$('.toggleRow').on('click', function () {
$('.hidden').css("display","block");
return false;
});
试试$('tr').toggleClass('.hidden')代码>也许我遗漏了一些东西,但我在代码中没有看到任何带有toggleRow类的元素!如果你指的是这个#btntoglerow
按钮,你的点击是错误的。@JeanRAKOTO我升级了代码我不明白为什么我要用tr.hidden而不是.hidden?你能更恰当地解释一下吗?@Michael可能有一个隐藏类的隐藏输入,如果你不这样指定tr.hidden
,它会显示出来,只有tr和类隐藏将显示您可以删除tr.hidden中的tr。这只是为了更具体一些。真正的问题在于children函数。替换为查找。
$('.toggleRow').on('click', function () {
$('.hidden').css("display","block");
return false;
});