可能是重复问题:
如何使用JavaScript创建
你的代码没问题。但我认为你没有在正确的时间调用它,所以当你的body标签加载时调用它。
window.addEventListener('DOMContentLoaded',function(){
var sheet = document.createElement('style');
sheet.type="text/css";
sheet.innerHTML = "body{color:red;}";
document.body.appendChild(sheet);
}, false);
<style>
元素来实现相同的效果。如果这是在CMS中且他没有FTP访问权限,则可能会很困难。 - Tango Bravodocument.head[0]
。我想要在 JavaScript 中编写整个样式,而不使用 CSS 文件。所以请清楚地解释一下。 - yuva.blue {
background-color: blue;
}
document.body.className = 'blue';
如果你真的需要整个样式表,只需将其添加到头部即可。var sheet = document.createElement('style');
sheet.type="text/css";
sheet.innerHTML = "body{color:red;}";
document.head.appendChild(sheet); // head, not body
在这里,你可以获得更多资源来增加你的知识。我相信一个例子会非常有用!还有一些 Stack Overflow 的问题也会对你有所帮助,比如这个。--Credits Peter Boughton
这已经在 IE、FF 和 Opera 中进行了测试:
var css = 'h1 { background: red; }',
head = document.getElementsByTagName('head')[0],
style = document.createElement('style');
style.type = 'text/css';
if(style.styleSheet){
style.styleSheet.cssText = css;
}else{
style.appendChild(document.createTextNode(css));
}
head.appendChild(style);
为元素添加类:
document.getElementById("MyElement").className += " MyClass";
要从元素中删除一个类:
document.getElementById("MyElement").className =
document.getElementById("MyElement").className.replace
( /(?:^|\s)MyClass(?!\S)/ , '' )
/* code wrapped for readability - above is all one statement */
在onclick事件中实现:
<script type="text/javascript">
function changeClass()
{
// code examples from above
}
</script>
...
<button onclick="changeClass()">My Button</button>
$j('#MyElement').addClass('MyClass');
$j('#MyElement').removeClass('MyClass');
$j('#MyElement').toggleClass('MyClass');
还有:
<script type="text/javascript">
function changeClass()
{
// code examples from above
}
$j(':button:contains(My Button)').click(changeClass);
</script>
...
<button>My Button</button>
这是将HTML标记与JS交互逻辑分离,特别是在大型/复杂应用程序上,可以使维护工作变得更加容易。
var sheet = document.createElement('style');
sheet.type="text/css";
sheet.innerHTML = "body{color:red;}";
document.head.appendChild(sheet);
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = 'body{color:red;}';
document.getElementsByTagName('head')[0].appendChild(style);
style
元素必须在head
中。 - Felix Klingstyle
元素只能在head
内部有效。 - Felix Kling