浏览HTMLElement中的每个CSS值,合并CSS样式
Go thru each CSS value in a HTMLElement, merge CSS styles
我想创建一个循环,这样我就可以遍历元素中定义的所有CSS属性。我的目标是创建一个合并两个元素样式的函数。
<span id="a1" style="font-family:verdana;">Hello</span>
<span id="a2" style="font-size:15;">World</span>
JS函数看起来像这样:
function mergeStyle (obj,target){
$.each(test.style.CSSStyleDeclaration,function(){ // This will not work?
// Add to target
})
return;
};
我建议使用类,因为您的需求听起来不是一个好的设计。如果你仍然想要它,这应该是有效的:
$.fn.mergeCSS = function(other) {
var $this = $(this),
$other = $(other),
style = $other.get(0).style;
$.each(style, function(i, name) {
$this.css(name, style[name]);
});
return this;
};
元素的.style
属性包含其样式;CSSStyleDeclaration
是.style
的构造函数,它不是特定于元素的。
用法:
$("<p style='color:green'>").mergeCSS("<p style='background-color:red'>");
// <p style='color: green; background-color: red; '>
它改变并返回第一个元素。
在最简单的形式中,如果你只想应用从a到b的样式,那么你可以尝试一下。
function mergeStyle (obj,target){
target.style.cssText = target.style.cssText + ";" + obj.style.cssText;
};
mergeStyle($('#a2')[0], $('#a1')[0]);
工作演示-http://jsfiddle.net/rDdMu/1/
我想出了一个适合我的解决方案:
function mergeStyle (obj,target){
for(var i = 0; i<obj.style.length; i++){
var stylename = obj.style[i];
if(target.style[stylename]=="")
target.style[obj.style[i]] = obj.style[stylename];
};
};
};
相关文章:
- JQuery合并了keyup和focusout两个函数
- CSS-如何定位内容数据标题
- 窗口大小html css
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 动画.CSS重播
- 有没有一种方法可以防止img get请求使用css或js发生
- 将CSS和JavaScript合并到一个文件中并进行链接
- 在Magento Admin后端取消合并CSS和JS文件
- 将 jQuery Mobile CSS 合并到 JavaScript 输出元素中
- 使用仅使用过的代码合并CSS和JS文件
- 浏览HTMLElement中的每个CSS值,合并CSS样式
- 合并和缩小外部JS库和css文件是通常的做法吗
- 自动化-CSS&JS min和合并文件
- 为了提高性能,我应该将我的javascript合并在一个中,将css文件合并在一个中吗
- 如何将CSS合并到表中
- Gzip上合并的CSS/JS文件在Magento
- 合并css类与jQuery/Javascript
- 将多个脚本和css标签合并到一个文件中
- 什么时候我应该合并我的JS和CSS文件
- 为什么CSS和Javascript不能合并到我的Magento商店中