在网页开发中,样式表通常通过<link>
元素引入,例如:
<link rel="stylesheet" href="styles.css" id="main-style">
// 通过ID删除
const styleLink = document.getElementById('main-style');
if (styleLink) {
styleLink.parentNode.removeChild(styleLink);
}
// 通过选择器删除
const styleLinks = document.querySelectorAll('link[rel="stylesheet"]');
styleLinks.forEach(link => {
if (link.href.includes('styles.css')) {
link.parentNode.removeChild(link);
}
});
// 通过ID删除
$('#main-style').remove();
// 通过属性选择器删除
$('link[rel="stylesheet"][href*="styles.css"]').remove();
function replaceStylesheet(oldHref, newHref) {
const links = document.querySelectorAll('link[rel="stylesheet"]');
links.forEach(link => {
if (link.href.includes(oldHref)) {
const newLink = document.createElement('link');
newLink.rel = 'stylesheet';
newLink.href = newHref;
link.parentNode.replaceChild(newLink, link);
}
});
}
// 使用示例
replaceStylesheet('old-styles.css', 'new-styles.css');
function replaceStylesheet(oldHref, newHref) {
$('link[rel="stylesheet"][href*="' + oldHref + '"]').replaceWith(
$('<link>', {
rel: 'stylesheet',
href: newHref
})
);
}
// 使用示例
replaceStylesheet('old-styles.css', 'new-styles.css');
function loadNewStylesheet(href) {
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = href;
document.head.appendChild(link);
}
// 使用示例
loadNewStylesheet('new-styles.css');
问题:样式表替换后样式没有立即生效?
load
事件确保样式表已加载const newLink = document.createElement('link');
newLink.rel = 'stylesheet';
newLink.href = 'new-styles.css';
newLink.onload = function() {
console.log('新样式表已加载');
};
document.head.appendChild(newLink);
问题:如何确保样式表替换的顺序正确?
// 在特定位置插入新样式表
const firstStyle = document.querySelector('link[rel="stylesheet"]');
const newLink = document.createElement('link');
newLink.rel = 'stylesheet';
newLink.href = 'new-styles.css';
document.head.insertBefore(newLink, firstStyle);
没有搜到相关的文章