jQuery show element with display:none !important
jQuery show element with display:none !important
我给一个元素分配了一个具有以下CSS的类:
.cls {
display:none !important;
}
当我尝试使用 jQuery 显示此元素时
$(".cls").show();
它不起作用。
如何显示此元素?
$('.cls').attr('style','display:block !important');
演示
虽然问题很久以前就被问过了,但它仍然与新的编码人员/初学者相关。通常,当您已经应用了某些类以使用!important
属性覆盖display
行为时,就会出现这种情况。
其他答案也与该问题相关,这是用不同的方法实现相同目标的问题。我建议使用同一库中已经可用的类(此处为引导程序(来实现它,而不是像现在我们大多数人使用 Bootstrap 类来构建布局时编写自定义类。
<div id='container' class="d-flex flex-row align-items-center">
.....
</div>
如果您在上面的代码中看到,我们正在使用 d-flex
类来设置此容器的显示属性。现在,如果我尝试使用 show/hide
这个容器
$('#container').show()
或
$('#container').hide()
它不会按预期工作,因为
- 由于
d-flex
已经在使用!important
属性 - Jquery的
show()
方法会将display:block
不display:flex
添加到容器的css属性中。
所以我建议在这里使用hidden
类。
显示容器
$('#container').removeClass('hidden')
隐藏容器
$('#container').addClass('hidden')
方法,
1(从.cls
类中删除!important
,
.cls{
display: none;
}
但我认为,你会在其他地方使用它,所以它可能会导致回归。
2(你也可以做的是,有一个另一个类并切换它,
.cls-show{
display: block !important;
}
然后在你的JavaScript中,
$('.cls').addClass(".cls-show");
然后,当您需要再次隐藏它时,您可以,
$('.cls').removeClass('.cls-show');
这将帮助您保持标记干净且可读
!important;删除所有规则并应用定义为 !important;的 css。因此,在您的情况下,它忽略了所有规则并应用了display:none。
所以这样做:
.cls {
display:none
}
另请参阅此内容
如果 CLS 类选择器中的唯一属性是显示属性,则可以执行此操作,而无需添加任何额外的类或修改内联样式。
要向他们展示:
$('.cls').removeClass("cls").addClass("_cls");
要隐藏它们:
$('._cls').removeClass("_cls").addClass("cls");
刚刚遇到了这个确切的问题,这就是我所做的首先,我向元素添加了另一个类,例如:
<div class="ui-cls cls">...</div>
然后在 javascript 中:
$('.ui-cls').removeClass('cls').show();
好处是你也可以用这段代码再次隐藏它:
$('.ui-cls').hide();
不管你隐藏/显示多少次,它仍然有效
- 如果连接类型为none,则Javascript Function Only警报
- 列表样式在IE中未设置为none,但在IE中适用
- 重写CSS:使用jquery显示none属性
- 如何在使用jQuery应用display:none后正确显示元素
- 在javascript中将样式显示从none更改为block
- Javascript -> CSS (display:none to display:block)
- 当display:none时,getElementById()无法获取元素
- Greasemonkey:当style=“display: none;”发生变化时如何做某事
- 使用 js/jQuery/css 在重力形式中覆盖 !important
- jQuery Transit:Object none 没有方法 'setFromString'
- Pre 标记似乎忽略了样式属性(例如 display:none)
- override fadeout() display: none
- Display-css-none在@media上的IE 8,9中不起作用(最大宽度:786px){}
- dd显示样式更改为none
- Youtube iframe没有响应通过上图传递的指针事件的点击:none
- js数据:;none”;以及“;注入“;对于DS“;reapAction”;配置选项
- jQuery - display : none not working
- Galleria致命错误:无法从CSS/Multiple Galleria和Display中提取舞台高度:none;
- 在javascript中覆盖CSS样式“display:none”
- jQuery show element with display:none !important