为什么我不能使用jquery显示/隐藏Html TR?

时间:2010-09-05 10:24:00

标签: javascript asp.net jquery html show-hide

我在HTML中使用以下TR并使用JQuery

<tr class="RowDiv" id="tempTR" runat="server" visible="false">                    <td>
                    <div class="LabelDiv">
                        <div class="dfltTxtBld">
                            ID<span class="reqChar" runat="server" id="Span1" visible="false">
                                *</span>
                        </div>
                    </div>
                </td>
                <td>
                    <div class="InputDiv">
                        <asp:TextBox ID="TextBox1" runat="server" CssClass="txtField" MaxLength="10"></asp:TextBox>
                    </div>
                </td>
                <td>
                    <div id="Div1" runat="server">
                    </div>
                </td>
            </tr>

在javascript代码中我调用了以下隐藏它的方法

$('#<%= tempTR.ClientID %>').hide();

但总是它不会影响,即使我试图让它隐藏,然后显示它也不起作用..我试图隐藏&amp;显示TextBox1并且它可以正常工作,但如果我尝试使用该行则无效...有没有办法显示/隐藏TR

5 个答案:

答案 0 :(得分:1)

如果我这样做onload就可以了

$(document).ready(function(){
    $('#tempTR').hide();
});

也许你的问题出在其他地方?

答案 1 :(得分:1)

我认为您遇到与此帖JQuery .Show() doesn't work with server control?

相同的问题

答案 2 :(得分:0)

在您的示例中,文本框有效,因为它是一个asp控件而表行没有,因为它是一个HTML元素。

查看实际的HTML并确保$('#<%= tempTR.ClientID %>').hide();在呈现的HTML中解析为$('#tempTR').hide();

我暂时没有使用ASP,但我相信它会呈现为$('#tempTR.ClientID'),而不是DOM中的ID。

答案 3 :(得分:0)

我更喜欢,因为您只是点击了要隐藏的TR中的元素,我将使用:

$('#other').click(function() {
    $(this).closest("tr").hide();
});

有一些影响:

$('#other').click(function() {
   $(this).closest("tr").fadeOut('slow');
});

记得将该代码放入onready函数

$(document).ready(function($) {
  // Code using $ as usual goes here.
});

答案 4 :(得分:0)

这不适用于Jquery或javascript中的表。您必须按类或其他ID引用表。使用元素ID不适用于表。