我试图使用JS / jquery删除css样式表。
我知道它会出现在' head'元素并包含文本:civicrm.css但我不知道网址的其余部分。
是这样的吗?:
if $("head:contains('civicrm.css')") {
remove the entire link it is part of.
}
目前我正在这样做:
('link[rel=stylesheet][href~="/thelinkaddress/civicrm.css?r=vrigl"]').remove()
但最后几封信经常改变。
答案 0 :(得分:3)
// grab all <link />
var stylesheets = document.getElementsByTagName('link');
for (var s = 0; s < stylesheets.length; s++){
var stylesheet = stylesheets[s];
// determine if it contains /bootstrap.min.css.css
if (stylesheet.href.indexOf('/bootstrap.min.css') > -1){
// remove element
stylesheet.parentNode.removeChild(stylesheet);
}
}
&#13;
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css?cacheBuster=123456" rel="stylesheet">
<div class="well">
<p>I'm in a well.</p>
</div>
&#13;
jQuery版本:
$('link[href*="/bootstrap.min.css"]').remove();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css?cacheBuster=abc123" rel="stylesheet">
<div class="well">
<p>I'm in a well.</p>
</div>
&#13;
答案 1 :(得分:1)
var str = 'civicrm.css';
$("link[href*='"+ str +"']").remove();
// another way
$('link').each(function () {
if ($(this).attr('href').indexOf(str) > -1) {
$(this).remove();
}
});
答案 2 :(得分:0)
w3schools对〜= css属性选择器说:
[attribute~ = value]选择器用于选择具有包含指定单词的属性值的元素。
所以你只需删除版本控制字符串
('link[rel=stylesheet][href~="/thelinkaddress/civicrm.css"]').remove()
试试=)
答案 3 :(得分:0)
您可以使用 Attribute Contains Selector 。
$( '[rel="stylesheet"][href*="civicrm.css"]' ).remove( );
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div rel="stylesheet" href="test.css"> test.css </div>
<div rel="stylesheet" href="civicrm.css"> civicrm.css </div>
<div rel="stylesheet" href="/thelinkaddress/civicrm.css?r=vrigl"> /thelinkaddress/civicrm.css?r=vrigl </div>
&#13;
为了演示,我使用div
代替link
。