删除属性CSS DOM JS

时间:2014-03-23 10:04:55

标签: javascript html css

我想知道我的代码有什么问题。 如果属性“rel =”stylesheet“

,我想删除所有”链接“标签

这是我的HTML代码

<html>
<head>
<title>teset</title>
<meta charset="utf-8" />
<meta name="description" content="test." />
<meta name="author" content="Me" />
<link rel="author" href="www.mysite.uk" />
<link rel="stylesheet" type="text/css" href="www.mysite.uk/css/style.css  />
<link rel="stylesheet" type="text/css" href="www.mysite.uk/css/style2.css />
</head>
<script src = "deleteCSS.js"></script>
<body onload="noCSS()">
<p> test !!</p>
</body>
</html>

这是我的JS名为“deleteCSS.js”

function noCSS(){ 
//I save tag "link"
var CSSlink = document.getElementsByTagName("link"); 
var CSSatt = CSSlink.getAttribute("rel");

for (i=0; i < CSSlink.length; i++){  
if (CSSatt[i] == "stylesheet"){
CSSlink[i].remove(); }
}
}

4 个答案:

答案 0 :(得分:4)

用jquery试试这个

$("link[rel='stylesheet']").remove();

http://jsfiddle.net/7Fcxx/

答案 1 :(得分:0)

如果您想要纯JavaScript实现:

(function() {
  var links = document.getElementsByTagName('link');
  for(var i=0; i<links.length; i++) {
    links[i].getAttribute('rel') === 'stylesheet' && links[i].remove();
  }
})();

将其复制到文件no-css.js并将其放在HTML文件的末尾。

您的代码无效,因为getElementsByTagName正在返回NodeList,因此调用getAttribute('rel')会返回错误TypeError: Object #<NodeList> has no method 'getAttribute'。因此,您必须遍历所有链接(节点),如果他们将rel属性设置为stylesheet,请将其删除。

希望这有帮助!

答案 2 :(得分:0)

function noCSS() {
    var links = document.getElementsByTagName("link");

    for (var i = links.length - 1; i >= 0; --i) {
        if (links[i].rel === "stylesheet") {
            links[i].parentNode.removeChild(links[i]);
        }
    }
}
  1. 您必须检查循环中每个rel的{​​{1}}属性;
  2. 您可以按相反的顺序删除它们(当您移除<link>时,links[0]代替它,当您移除links[1]时,它实际上删除了其余的第二个;
  3. 或者您可以改为使用links[1],并始终删除while (links.length)(其余的第一个)。

答案 3 :(得分:0)

这是另一个JavaScript实现:

    function noCSS(){ 

        var CSSlink = document.getElementsByTagName("link"); 

        for (i=0; i < CSSlink.length; i++ )
        { 
            if (CSSlink[i].getAttribute("rel") === "stylesheet")
            {
                CSSlink[i--].remove();
            }
        }
    }

确保在href标记的末尾输入引号,例如 href="www.mysite.uk/css/style.css"