我不能改变样式表对象的title属性.为什么?



styleSheets对象的title属性是否为只读?为什么我不能改变它?

alert(document.styleSheets[0].title);
<link rel="stylesheet" href="js-practice.css" type="text/css" title="first">
<link rel="stylesheet" href="secondcss.css" type="text/css" title="second">

(不是Stack Snippet,因为样式表实际上不会被链接,所以会产生误导。)使用title属性,我可以读取title,但当我试图改变它时,它不会改变。

document.styleSheets[0].title = "newfirst";

这行不通。

我尝试使用内部CSS,结果是一样的。

alert(document.styleSheets[0].title);
<style title="first">
body {
background-color: red;
}
</style>

我只能读取title属性,但当我试图改变它时,它不起作用。

然而,什么工作是当我的目标是link元素,而不是。

var stylesheets2 = document.getElementsByTagName("link");
stylesheets2[0].title = "newtitle";
alert(document.styleSheets[0].title);
<link rel="stylesheet" href="js-practice.css" type="text/css title="first">

这确实有效,这导致了我的第二个问题-link元素和styleSheets对象之间的连接是什么?我认为我可以直接针对Link元素更改title的原因是因为我没有更改styleSheets对象的Title属性,而是更改该元素的html属性。

尝试使用ownerNode属性更改标题:

document.styleSheets[0].ownerNode.setAttribute('title', 'newtitle');

https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet/ownerNode

最新更新