从网页上卸载CSS

Ale*_*art 45 javascript

我想知道如何从页面卸载CSS.例如,在我的页面中,我添加了一个名为a.css的文件.现在我希望用户能够更改主题,这是CSS驱动的,因此他/她应该能够卸载a.css然后我可以加载b.css(否则他们会冲突)

知道如何去做吗?

Xin*_*nus 62

获取link元素并禁用它

document.getElementsByTagName('link')[0].disabled = true; 
Run Code Online (Sandbox Code Playgroud)

  • @CppForever 是的。但与此同时,答案仍然有效且有帮助,因为它引导我们走向正确的方向。如果需要,我们可以检查“href”、“rel”等的值。但是,这些操作只是实现细节。至少,我相信答案并不像你所说的“错误”。 (4认同)
  • 一个重要的警告是“link”不支持“disabled”属性(请参阅 [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled))。实际上它可能有效,但不符合标准。 (2认同)

Gul*_*yrd 28

使用jquery,这可以工作:

$("link[href='fileToRemove.css']").remove();
Run Code Online (Sandbox Code Playgroud)

显然,将fileToRemove.css替换为要卸载的文件的相对路径和文件名.

  • 我必须将文件名放在引号中以使其工作,例如$("link [href ='test.css']").remove(); (7认同)
  • 如果您不想放置路径,可以在等号前添加*.$( "链接[HREF*= 'fileToRemove.css']")除去(); (6认同)

med*_*iev 8

var firstLink = document.getElementsByTagName('link')[0];
firstLink.parentNode.removeChild(firstLink)
Run Code Online (Sandbox Code Playgroud)

这将删除页面上的第一个链接元素 - 不确定你的html是如何构造的,但我相信你可以用它作为一个例子.您可能想要检查type属性,如果它是'text/css'并且您的目标是正确的媒体(屏幕),或者如果您有其他链接元素不是css引用,可能会检查href是否包含'css' .

请注意,您还可以将href属性重新设置为指向不存在的页面,而不是完全删除该元素.