jQuery将应用类转换为样式属性

Teo*_*ahi 1 css jquery

我正在开发一个bookmarklet项目.因此,当用户点击书签时,他可以抓取网页的部分内容并在其他地方查看.

问题是部分元素(让我们假设div)应用了css样式和类.

有没有办法遍历所选div的所有子元素并将类属性转换为样式属性,以便我可以保持格式化?

例如下面的示例截图; 我需要取出所有应用的类并将它们转换为选定区域中的样式属性.

在此输入图像描述

Cod*_*ner 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));
Run Code Online (Sandbox Code Playgroud)

你可以用它来调用它

$(".select").makeCSSInline();
Run Code Online (Sandbox Code Playgroud)

这个函数的问题在于它将每个CSS属性都带入标记中,因此它可能会导致性能受到重大影响,但如果您愿意冒这个风险,请继续

小提琴

从这里获得的功能