2010-09-05 186 views
3

我有以下的HTML TR和我使用JQuery为什么我不能使用jquery显示/隐藏Html TR?

<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(); 

但总是它甚至不影响我尝试使其隐藏,然后显示它也不工作..我试图隐藏&显示TextBox1和它的工作,但如果我尝试与行它不工作...有什么办法显示/隐藏TR

+0

是否是TempTR唯一的id? – Marko 2010-09-05 10:27:51

+0

是的它是独一无二的 – Hotmoil 2010-09-05 10:28:34

+0

它的工作原理:http://jsfiddle.net/3edjh/ – aularon 2010-09-05 10:33:10

回答

1

如果我这样做,为onload它的工作原理

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

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

+0

我更新了生成标识的真实案例的代码 – Hotmoil 2010-09-05 10:52:10

0

在你的例子中,文本框的工作原理是因为它是一个asp控件,而表格行并不是因为它是一个HTML元素。

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

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

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. 
}); 
0

这不适用于Jquery或JavaScript中的表格。你必须通过类或其他ID引用表。使用元素ID不适用于表格。