jQuery& CSS - 删除/添加display:none

时间:2011-02-20 19:53:28

标签: jquery css

我有这个班的div:

.news{
  width:710px; 
  float:left;
  border-bottom:1px #000000 solid;
  font-weight:bold;
  display:none;
}

我想用一些jQuery方法删除那个显示:none; (所以div会显示)然后再添加它(所以div会阴影)。

我该怎么办?干杯

13 个答案:

答案 0 :(得分:173)

隐藏div

$('.news').hide();

$('.news').css('display','none');

并显示div

$('.news').show();

$('.news').css('display','block');

答案 1 :(得分:69)

jQuery为您提供:

$(".news").hide();
$(".news").show();

然后,您可以轻松地显示和隐藏元素。

答案 2 :(得分:14)

所以,让我给你一些示例代码:

<div class="news">
Blah, blah, blah. I'm hidden.
</div>

<a class="trigger">Hide/Show News</a>

链接将是单击时显示div的触发器。所以你的Javascript将是:

$('.trigger').click(function() {
   $('.news').toggle();
});

让jQuery处理隐藏和显示元素的样式几乎总是更好。

修改:我看到上述人士建议您使用.show.hide.toggle允许您只使用一种效果来执行这两项操作。这很酷。

答案 3 :(得分:14)

在JavaScript中:

getElementById("id").style.display = null;

在jQuery中:

$("#id").css("display","");

答案 4 :(得分:11)

使用切换显示和隐藏。

$('#mydiv').toggle()

检查http://jsfiddle.net/jNqTa/

上的工作示例

答案 5 :(得分:8)

我建议添加一个类来显示/隐藏元素:

.hide { display:none; }

然后使用jquery的.toggleClass()来显示/隐藏元素:

$(".news").toggleClass("hide");

答案 6 :(得分:7)

删除内联的唯一方法&#34; display:none&#34;通过jQuery&#39; sss-api是用空字符串重置它(null不能正常工作!)。

根据jQuery文档,这是&#34;删除&#34;的一般方法。一次设置内联样式属性。

$("#mydiv").css("display","");

$("#mydiv").css({display:""});

应该正确地做到这一点。

恕我直言,jQuery中有一个方法可以被称为&#34;取消隐藏&#34;或&#34;揭示&#34;如上所述,它不是仅设置另一个内联样式属性而是正确设置显示值。或者hide()可能应存储初始内联值,而show()应该还原...

答案 7 :(得分:6)

jQuery的.show()和.hide()函数可能是你最好的选择。

答案 8 :(得分:5)

您没有向我们提供太多信息,但总的来说这可能是一个解决方案:

$("div.news").css("display", "block");

答案 9 :(得分:4)

出于某种原因,切换不起作用并收到错误:“未捕获的类型错误切换不是一个功能”。在浏览器中的inspect元素上。所以我使用了以下代码,它开始为我工作。

$(".trigger").click(function () { $('.news').attr('style', 'display:none'); }

使用版本的jquery脚本文件:'jquery-2.1.3.min.js“。

答案 10 :(得分:3)

如果你想要.hide().show()有很多元素,那么即使使用.hide(0)或者.show(0),也会浪费大量资源来做你想做的事情。 .hide() - 0参数是动画的持续时间。

与仅用于操作元素的display属性的 Prototype.js .show().css('display','none')方法相反, jQuery &# 39;实施更复杂,不推荐用于大量元素。

在这种情况下,您应该尝试.css('display','')隐藏并.css('display','block')显示

应避免使用

{{1}},特别是如果您正在使用内联元素,表格行(实际上是任何表格元素)等。

答案 11 :(得分:1)

考虑到lolesque对最佳答案的评论,您可以添加属性或类来显示/隐藏具有与通常不同的显示属性的元素,如果您的站点需要向后兼容性,我建议创建一个类并添加/删除它显示/显示元素

.news-show {
display:inline-block;
}

.news-hide {
display:none;
}

使用您选择的首选显示方法替换内联块,并使用jquerys addclass https://api.jquery.com/addclass/和removeclass https://api.jquery.com/removeclass/而不是show / hide,如果向后兼容性没有问题,您可以使用这样的属性。

.news[data-news-visible=show] {
display:inline-block;
}

.news[data-news-visible=hide] {
display:none;
}

并使用jquerys attr()http://api.jquery.com/attr/来显示和隐藏元素。

无论您喜欢哪种方法,都可以在以这种方式显示/隐藏元素时轻松实现css3动画

答案 12 :(得分:0)

使用join代替signUp会添加show(),这可能会导致问题。

为避免这种情况,您可以创建一个具有属性display:block的类,并使用display:hide为该元素切换该类。

display:none
toggleClass()
$("button").on('click', function(event){  $("div").toggleClass("hide"); });

没有答案提到这一点。