[英]How to remove all linked stylesheets but keep one by ID?
I need to remove all linked stylesheets in the head , while keeping one of them. 我需要删除头部中所有链接的样式表,同时保留其中之一。
I want them all removed , except for the one with id=custom_stylesheet 我希望将其全部删除,但id = custom_stylesheet的除外
<link type="text/css" href="" rel="stylesheet"></link>
<link type="text/css" href="" rel="stylesheet"></link>
<link type="text/css" href="" rel="stylesheet"></link>
<link id="skin_stylesheet" type="text/css" href="" rel="stylesheet"></link>
<link id="custom_stylesheet" type="text/css" href="" rel="stylesheet"></link>
This worked to remove them all , but how do i edit it to keep one ? 这可以删除所有内容,但是我如何对其进行编辑以保留其中一个?
$('link[rel=stylesheet]').remove();
You can use :not
or .not()
: 您可以使用
:not
或.not()
:
$('link[rel=stylesheet]:not(#custom_stylesheet)').remove();
$('link[rel=stylesheet]').not('#custom_stylesheet').remove();
There is a document.styleSheets collection that contains all the style sheet for a document. 有一个document.styleSheets集合 ,其中包含文档的所有样式表。 The advantage is that it includes all style sheets, ie those added by link elements and style elements.
优点是它包括所有样式表,即由链接元素和样式元素添加的样式表。
So iterate over that: 因此遍历:
var sheet, sheets = document.styleSheets;
for (var i=0, iLen=sheets.length; i<iLen; i++) {
sheet = sheets[i];
if (sheet.id != 'custom_stylesheet') {
sheet.parentNode.removeChild(sheet);
}
}
I'm sure there's a jQuery–ised version that uses each , something like: 我敢肯定有一个使用的每个 ,像一个jQuery的ISED版本:
jQuery.each(document.styleSheets, function(i, sheet) {
if (sheet.id != 'custom_sytleSheet') $(sheet).remove();
// or much more efficient
// if (sheet.id != 'custom_sytleSheet') sheet.parentNode.removeChild(sheet)
})
try 尝试
$('link[rel=stylesheet]').filter(function(){
return this.id !="custom_stylesheet";
}).remove();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.