我给一个元素分配了一个类,它有以下CSS:
.cls { display:none !important; }
当我尝试用jQuery显示这个元素时
$(".cls").show();
它不起作用。如何显示这个元素?
ssgvzors1#
$('.cls').attr('style','display:block !important');
DEMO
yhived7q2#
虽然这个问题很久以前就被问到了,但是对于新的编码者/初学者来说仍然是相关的。通常情况下,当你已经应用了一些使用!important属性覆盖display行为的类时,就会出现这种情况。其他答案也与这个问题相关,这是一个用不同的方法实现相同目标的问题。我建议使用同一库中已经可用的类来实现它(这里是 Bootstrap ),而不是像现在我们大多数人使用** Bootstrap 类**来构建布局那样编写自定义类。
!important
display
<div id='container' class="d-flex flex-row align-items-center"> ..... </div>
如果你在上面的代码中看到,我们正在使用d-flex类来设置这个容器的display属性。$('#container').show()
d-flex
$('#container').show()
$('#container').hide()它不会按预期工作,因为1.由于d-flex已在使用!important属性
$('#container').hide()
show()
display:block
display:flex
hidden
$('#container').removeClass('hidden')
$('#container').addClass('hidden')
eyh26e7m3#
有两种方法,1)从.cls类中删除!important,
.cls
.cls{ display: none; }
但我猜你会在其他地方用这个所以可能会导致退化。2)你也可以选择另一个类,然后切换到另一个类,
.cls-show{ display: block !important; }
然后在你的javascript里
$('.cls').addClass(".cls-show");
当你需要再次隐藏它时,你可以,
$('.cls').removeClass('.cls-show');
这将帮助您保持标记清晰可读
ig9co6j14#
!重要;删除所有规则并应用定义为!重要的css;。因此,在您的示例中,它将忽略所有规则并应用display:none。
所以这样做:
.cls { display:none }
参见this also
kjthegm65#
如果CLS类选择器中的唯一属性是display属性,则可以执行此操作,而无需添加任何额外的类或修改内联样式。向他们展示:
$('.cls').removeClass("cls").addClass("_cls");
要隐藏它们:
$('._cls').removeClass("_cls").addClass("cls");
pexxcrt26#
刚刚遇到了这个问题,这是我首先做的,我向元素添加了另一个类,例如:
<div class="ui-cls cls">...</div>
然后在javascript中:
$('.ui-cls').removeClass('cls').show();
好的一面是,你也可以用下面的代码来隐藏它:
$('.ui-cls').hide();
不管你隐藏/显示多少次,它仍然有效
6条答案
按热度按时间ssgvzors1#
DEMO
yhived7q2#
虽然这个问题很久以前就被问到了,但是对于新的编码者/初学者来说仍然是相关的。通常情况下,当你已经应用了一些使用
!important
属性覆盖display
行为的类时,就会出现这种情况。其他答案也与这个问题相关,这是一个用不同的方法实现相同目标的问题。我建议使用同一库中已经可用的类来实现它(这里是 Bootstrap ),而不是像现在我们大多数人使用** Bootstrap 类**来构建布局那样编写自定义类。
如果你在上面的代码中看到,我们正在使用
d-flex
类来设置这个容器的display属性。$('#container').show()
或
$('#container').hide()
它不会按预期工作,因为
1.由于
d-flex
已在使用!important
属性show()
方法会将display:block
而不是display:flex
添加到container的css属性中。因此,我建议在这里使用**
hidden
**类。显示容器
$('#container').removeClass('hidden')
隐藏容器
$('#container').addClass('hidden')
eyh26e7m3#
有两种方法,
1)从
.cls
类中删除!important
,但我猜你会在其他地方用这个所以可能会导致退化。
2)你也可以选择另一个类,然后切换到另一个类,
然后在你的javascript里
当你需要再次隐藏它时,你可以,
这将帮助您保持标记清晰可读
ig9co6j14#
!重要;删除所有规则并应用定义为!重要的css;。因此,在您的示例中,它将忽略所有规则并应用display:none。
所以这样做:
参见this also
kjthegm65#
如果CLS类选择器中的唯一属性是display属性,则可以执行此操作,而无需添加任何额外的类或修改内联样式。
向他们展示:
要隐藏它们:
pexxcrt26#
刚刚遇到了这个问题,这是我首先做的,我向元素添加了另一个类,例如:
然后在javascript中:
好的一面是,你也可以用下面的代码来隐藏它:
不管你隐藏/显示多少次,它仍然有效