我想将网页的某种CSS风格重用于我添加的新Div元素。我正在使用Greasemonkey重新设计页面。
如何将bar1
样式添加到myDiv
?
原创div:
<div id="bar1" class="bar1">
新Div:
var myDiv = document.createElement('div');
答案 0 :(得分:0)
myDiv.className = 'bar1';
或
myDiv.className = document.getElementById ('bar1').className;
答案 1 :(得分:0)
听起来你的最终目标是制作像书签一样的东西。如果您只是想添加一个类,您可以随时在对象上设置“className”,因为“class”这个词是受保护的。
http://jsfiddle.net/scispear/tCzZM/
我还动态地投放了一些样式表(但是对于更现代的浏览器,旧的浏览器需要更多的工作)。
答案 2 :(得分:0)
由于CSS继承,复制类名是不够的,除非新元素是另一个的兄弟。即使这样,像nth-child
这样的CSS3选择器也可能搞砸了。
您应该迭代所有相关的样式属性并复制它们的计算值,如下所示:
var stylesToCopy = ['color', 'background-color', ...];
var oldStyle = getComputedStyle(bar1);
for (var i = 0; i < stylesToCopy.length; i++) {
myDiv.style[stylesToCopy[i]] = oldStyle[stylesToCopy[i]];
}