我有一些元素的样式由JS动态修改。但是,我希望其中一个不会被修改。
我怎样才能指定它的样式,这是静态的,无论如何都不能被覆盖。感谢。
答案 0 :(得分:4)
这是不可能做到的。加载CSS后执行JavaScript&应用。你必须改变你的ID和类和/或JavaScript代码,以便它不会针对您不想更改的元素。
答案 1 :(得分:2)
你做不到。
您可以做的最好的事情是覆盖执行修改的javascript方法。
答案 2 :(得分:2)
简短的回答是你不能。浏览器遇到CSS时应用CSS。由于对JavaScript的调用是更改该特定样式的最新调用,因此它将应用于该元素。
您可以在第一个脚本之后运行另一个更改该特定元素样式的JavaScript。由于该元素有一些独特之处,您可以通过其ID,类或名称来引用它。
答案 3 :(得分:2)
如您所见,您无法在CSS中执行此操作;但是,您可以指示JavaScript不更新元素的样式,但需要一些手动注意。请考虑以下事项:
HTML
<ul id="some-list">
<li>A</li>
<li>B</li>
<li class="no-style-update">C</li>
<li>D</li>
</ul>
JavaScript(香草)
var nodes = document.getElementById("some-list").getElementsByTagName("LI");
for ( var i=0, l=nodes.length; i<l; ++i ) {
// If style updates are allowed
if ( !nodes[i].className.match(/\bno-style-update\b/i) ) {
// Update the element's style
}
}
答案 4 :(得分:-1)
也许您可以将元素放入iframe,其中src属性引用不同的路径或域。然后容器页面中的javascript无法修改元素,因为相同的原始规则不允许修改来自不同来源的数据。