如何查找动态创建的<style>元素</style>

时间:2009-11-25 17:10:22

标签: javascript jquery

我正在用这样的javascript创建一个<style>元素:

function createMyStyle(selector , rule) {
   j$("head").append('<style type="text/css">' + selector + '{' + rule + '}' + '</style>');
}

我不想每次都创建这个元素,而是要找出来 如果已插入此<style>元素,然后使用类似的内容将其添加到其中:

if( stylesheet.addRule ) {
    stylesheet.addRule(selector, rule);
} 
else if( stylesheet.insertRule ) {
    stylesheet.insertRule(selector + ' { ' + rule + ' }', stylesheet.cssRules.length);
}

我创建了这个<style>而不是纯DOM,因为IE不能将innerHTML用于document.createElement('style')。

我尝试给<style> id并执行类似......

的操作
for( var i in document.styleSheets ) {
    if( !document.styleSheets[i].id) {

但是这不可能,因为它没有id属性。

2 个答案:

答案 0 :(得分:0)

尝试用jQuery做这样的事情:

if($("style").length > 0){
  // this means you have a style  element in your document
}

答案 1 :(得分:0)

赋予

$('head').append('<style id="some-id"> ... </style>');

console.log($('#some-id'));

但是,如果你不知道,there are much easier ways在jQuery中添加和删除文档中的样式。