I'm using this script to pull the style information for an element on a page, and then apply those styles to a second element, but for some reason, it's only working in Chrome and Safari [not Firefox or Internet Explorer]. This is problematic, because I mainly need this for Internet Explorer.
Here's the demo: http://jsfiddle.net/J3tSx/1/
Script:
$(document).ready(function() {
    function css(a) {
        var sheets = document.styleSheets, o = {};
        for (var i in sheets) {
            var rules = sheets[i].rules || sheets[i].cssRules;
            for (var r in rules) {
                if (a.is(rules[r].selectorText)) {
                    o = $.extend(o, css2json(rules[r].style), css2json(a.attr('style')));
                }
            }
        }
        return o;
    }
    function css2json(css) {
        var s = {};
        if (!css) return s;
        if (css instanceof CSSStyleDeclaration) {
            for (var i in css) {
                if ((css[i]).toLowerCase) {
                    s[(css[i]).toLowerCase()] = (css[css[i]]);
                }
            }
        } else if (typeof css == "string") {
            css = css.split("; ");
            for (var i in css) {
                var l = css[i].split(": ");
                s[l[0].toLowerCase()] = (l[1]);
            }
        }
        return s;
    }
    /*
    $("#test_div").click(function() {
        alert("clicked");
        if (!$(this).hasClass("hovered")) {
            alert("detected no hovered class");
            $(this).addClass("hovered");
            alert("added hovered class");
            var hoverStyle = css($("#test_div"));
            alert("created the hoverStyle variable");
            $("#second_div").css(hoverStyle);
            alert("applied the hoverStyle variable to #second_div");
        }
    });
    */
    var hoverStyle = css($("#test_div"));
    alert("created the hoverStyle variable");
    $("#second_div").css(hoverStyle);
    alert("applied the hoverStyle variable to #second_div");
});
HTML:
<section id="test_div">
</section>
<section id="second_div">
</section>
UPDATE: What's weird is that neither IE nor Firefox throw any kind of error. They just act as if #test_div is unstyled, and therefore no styles get added to #second_div. Very strange.
UPDATE 2: I just noticed this bit of code:
var s = {};
if (!css) return s;
I think this may have something to do with it.
Things I've tried
- Changing the names of the sections, to get rid of the _
 - Changing to an older version of jQuery
 - Moving the position of the code from the body to the head, etc