我有这个班的div:
.news{
width:710px;
float:left;
border-bottom:1px #000000 solid;
font-weight:bold;
display:none;
}
我想用一些jQuery方法删除那个显示:none; (所以div会显示)然后再添加它(所以div会阴影)。
我该怎么办?干杯
答案 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)
答案 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"); });
没有答案提到这一点。