关于动态改变<link>标签的href

如题,我创建了两个<li>分别给他们添加了点击事件,在<link>里我添加了id = "changecss",代码如下:

<link rel="stylesheet"  type="text/css" id = "changecss" href="css/index.css">

        <ul>

            <li class="active" on click="javascript:document.getElementById('changecss').href ='css/index.css'">首页案例</li>

            <li class = "li2" on click="javascript:document.getElementById('changecss').href ='css/change.css'">详情页案例</li>

        </ul>

但是还是无法改变<head>里的<link>标签里的href的路径,还是会加载原本的css,但新建的css文件里的css也有效果,所以特来向各位求助。。。。

喵喔喔
浏览 2427回答 1
1回答

隔江千里

修改href属性确实会触发浏览器加载css,但是这样会带来很多新问题,其他元素css错乱等,不太好维护。比较好的做法是动态添加css。给你提供个动态加载css的方法。&nbsp;var&nbsp;addCss&nbsp;=&nbsp;function(path){&nbsp;&nbsp;&nbsp;&nbsp;if(!path&nbsp;||&nbsp;path.length&nbsp;===&nbsp;0){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Error('argument&nbsp;"path"&nbsp;is&nbsp;required&nbsp;!'); &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;head&nbsp;=&nbsp;document.getElementsByTagName('head')[0];&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;link&nbsp;=&nbsp;document.createElement('link'); &nbsp;&nbsp;&nbsp;&nbsp;link.href&nbsp;=&nbsp;path; &nbsp;&nbsp;&nbsp;&nbsp;link.rel&nbsp;=&nbsp;'stylesheet'; &nbsp;&nbsp;&nbsp;&nbsp;link.type&nbsp;=&nbsp;'text/css'; &nbsp;&nbsp;&nbsp;&nbsp;head.appendChild(link); };如果你不想加载css/index.css,一开始就不需要写<link rel="stylesheet" type="text/css" id = "changecss" href="css/index.css">
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript