我正在开发一个bookmarklet项目。因此,当用户点击书签时,他可以抓取网页的部分内容并在其他地方查看。
问题是部分元素(假设div)已经应用了css样式和类。
有没有办法遍历所选div的所有子元素并将类属性转换为样式属性,以便我可以保持格式化?
例如下面的示例截图; 我需要取出所有应用的类并将它们转换为选定区域中的样式属性。
答案 0 :(得分:5)
(function($) {
$.extend($.fn, {
makeCssInline: function() {
this.each(function(idx, el) {
var style = el.style;
var properties = [];
for(var property in style) {
if($(this).css(property)) {
properties.push(property + ':' + $(this).css(property));
}
}
this.style.cssText = properties.join(';');
$(this).children().makeCssInline();
});
}
});
}(jQuery));
您可以使用
调用它$(".select").makeCSSInline();
这个函数的问题在于它将每个CSS属性都带入标记中,因此它可能会导致性能受到重大影响,但如果您愿意冒这个风险,请继续
从here
获取的功能答案 1 :(得分:0)
固定与引导程序一起使用
(function($) {
$.extend($.fn, {
makeCssInline: : function(sizes) {
this.each(function(idx, el) {
var style = el.style;
var properties = [];
for(var property in style) {
if(property=="height" || property=="width") { continue; }
if($(this).css(property)) {
properties.push(property + ':' + $(this).css(property));
}
}
if(sizes) {
properties.push("width" + ':' + $(this).width()+"px");
properties.push("height" + ':' + $(this).height()+"px");
}
this.style.cssText = properties.join(';');
$(this).children().makeCssInline();
});
}
});
}(jQuery));