提问者:小点点

如何覆盖通过Javascript或jQuery应用的CSS?


一个JS文件(不允许我编辑)正在将内联CSSdisplay:flex!importal应用到div。 如何将其重写为display:none

我尝试了以下操作,但没有成功:

CSS:

.ui.page.modals.dimmer.transition.visible.active {
    display: none !important;
}

.ui.page.modals.dimmer.transition.visible.active[style] {
    display: none !important;
}

jQuery:

$("div.ui.page.modals.dimmer.transition.visible.active").css("display","none");

共3个答案

匿名用户

从另一个角度考虑,您可以尝试将有问题的模态元素包装在另一个元素中,并使包装元素display:none

如果父组件未显示,则子组件的display属性是什么并不重要。

我相信jQuery语法应该如下所示:

$('div.ui.page.modals.dimmer.transition.visible.active').wrap('<div style="display:none"></div>');

见https://api.jquery.com/wrap/

匿名用户

我不知道你是否可以在你的代码库中使用这个黑客。 (https://jsfiddle.net/x37r4jzm/)

<style>
.hidden-div{
  display: none
}
</style>


<script>
var element = document.getElementById('selector')

// `element` is the element you want to wrap
var parent = element.parentNode;
var wrapper = document.createElement('div');
wrapper.className = 'hidden-div';

// set the wrapper as child (instead of the element)
parent.replaceChild(wrapper, element);
// set element as child of wrapper
wrapper.appendChild(element);
</script>

匿名用户

如果你添加了!immortant,而js不允许你覆盖它,你可以简单地做以下步骤:1。 尝试使用js删除属性样式,比如-

$("div.ui.page.modals.dimmer.transition.visible.active").removeAttr('style');

2.一旦你移除style属性,只需添加-

$("div.ui.page.modals.dimmer.transition.visible.active").css("display","none");

试试它一直对我有效。 我希望这能帮到你。

请确保在加载了无法编辑的脚本后添加此js。