javascript - 从 html 中分离元素样式

标签 javascript jquery html css

我有大量这样的 html 文件

<div style="min-height: 32px; padding: 5px; width: 800px; margin: 50px auto; overflow: auto; font-size: 12px;" class="selectable clearfix selected_layer" id="wrap">
<div class="selectable" id="l1" style="float: left; min-width: 64px; min-height: 32px; padding: 5px; margin: 5px; overflow: auto; width: 200px;"></div>
<div class="selectable" id="l2" style="float: right; min-width: 64px; min-height: 32px; padding: 5px; margin: 5px; overflow: auto;"></div></div>

如何分离元素样式并使其成为css(每个div总是有id来标识)

#wrap{
min-height: 32px; 
padding: 5px; 
width: 800px; 
margin: 50px auto; 
overflow: auto; 
font-size: 12px;
}
#l1{...}
#l2{...}
...

我需要在客户端完成,这意味着我将使用 javascript、jquery 等...

最佳答案

为什么?在这一点上没有理由这样做。如果您需要将样式应用于其他没有它的元素,请执行以下操作:

var style = element.style;
var i;
for (i in style) {
    other_element[i] = style[i];
}

编辑:

根据您的评论,您或许可以执行以下操作:

var elements = [...]; //collect together all the elements you need styles for
var i;
var j;
for (i = 0; i < elements.length; i++) {
    print('#' + elements[i].id + '{');
    for (j in elements[i].style) {
        print(j + ':'+elements[i].style[j] + ';');
    }
    print('}');
}

在 javascript 中显然没有打印语句,所以用你想要的替换它。这仍然假设所有元素都有 id。我不确定这是否真的值得 - 如果您无论如何要为每个元素使用一种样式,那么这是一个非常大的样式表。

关于javascript - 从 html 中分离元素样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3487969/

相关文章:

html - 为什么 &lt;!Doctype ... >-标签没有关闭

javascript - 创建 Cordova 2.2.0 插件

javascript - 在 IE 中查看时,Jquery Animate 无法正常工作

javascript - JQuery 向后计时器不应在页面刷新时停止(倒计时器)

javascript - 如何从单选按钮获取文本值并将值分配给特定的 div

css - 鼠标悬停时显示div

c# - 如何在标题下方的 Accordion 中添加箭头图像而不是标题背景?

javascript - rails |如何访问 js.erb 文件中的哈希值

javascript - ReactJS + Webpack : Why Uncaught Error: Cannot find module "../media/interiorTest.jpg"?

ajax 请求后的 jQuery 工具提示位置