如何在jquery中将visible设置为true

时间:2011-03-31 06:19:26

标签: jquery

我使用以下代码隐藏下拉框:

  <asp:DropDownList ID="test1" runat="server" DataSourceID="dsTestType" CssClass="maptest1" visible="false"
    DataValueField="test_code" DataTextField="test_desc" AppendDataBoundItems="true" >
    <asp:ListItem></asp:ListItem>
  </asp:DropDownList>   

不知何故,我尝试使用以下代码显示此下拉列表,但这对我不起作用。谁知道为什么?

$("#test1").show();

8 个答案:

答案 0 :(得分:49)

取决于你如何隐藏它。

如果您使用了CSS visibility值,那么

$('#test1').css('visibility', 'visible');

如果您使用CSS`display'

$('#test1').css('display', 'block'); //or inline or any of the other combos

您甚至可能已将其设为opacity = 0

$('#test1').css('opacity', '1');

答案 1 :(得分:16)

使用ASP.NET的visible="false"属性将设置visibility属性,我认为当你在jQuery中调用show()时,它会修改CSS样式的display属性。

所以做后者不会纠正前者。

你需要这样做:

$("#test1").attr("visibility", "visible");

答案 2 :(得分:5)

取决于,如果我没记错的话,我认为当你将visible设置为false时,asp.net不会渲染html对象。

如果您希望能够从客户端控制它,那么最好只包括css值以将其设置为不可见而不是使用visible = false。

答案 3 :(得分:3)

删除visible =“false”属性并添加默认情况下不可见的CSS类。 然后,您应该能够通过正确的ID引用下拉列表,例如:

$("#ctl00_cphTest_test1").show();

以上ID,您应该在浏览器中的已渲染页面的源代码中搜索。

答案 4 :(得分:2)

你是如何让它隐形的?尝试不同的方法。使用

$("#test1").css('display','none');

如果要隐藏该元素,请使用

$("#test1").css('display','block');

当你想表现出来时。

或者只是将这些样式移到一个类中并添加/删除类。

答案 5 :(得分:1)

在下拉列表标记中使用style="display:none",在jquery中使用以下内容显示和隐藏。

$("#yourdropdownid").css('display', 'inline');

OR

$("#yourdropdownid").css('display', 'none');

答案 6 :(得分:0)

我会小心设置要阻止的元素的display。不同的元素将标准显示为不同的东西。例如,设置显示以阻止firefox中的表行会导致单元格的宽度不正确。

元素的名称实际上是test1。我知道.NET可以在开始或结束时添加额外的东西。找出你的选择器是否正常工作的最佳方法是这样做。

alert($('#text1').length);

您可能只需要删除可见性属性

$('#text1').removeAttr('visibility');

答案 7 :(得分:0)

问题是,由于您使用的是具有runat属性的ASP.NET控件,因此控件的ID实际上不是“test1”。它是“test1”,附有长字符串。