如何使用jQuery删除继承的样式?

时间:2011-06-12 22:26:32

标签: jquery css

大家好我有一个DIV,我通过了一个js函数:

function print(divId) {
        var det = document.getElementById(divId);

        $(divId).removeClass();  ..
        $(divId).removeAttr();   ..        

       var mywindow = window.open(' ', 'Print');
        mywindow.document.write('<html><head><title>Account Detail</title>');
        mywindow.document.write('<link href="../../css/reset-min.css" rel="stylesheet" type="text/css" />');
        mywindow.document.write('</head><body>');
        mywindow.document.write(det.innerHTML);
        mywindow.document.write('</body></html>');
        } 

我已经尝试了一些jQuery函数,如上面所示,买它不起作用因为样式继承自css模板,所以如何完全删除CSS和样式属性completly ..我听说YUI重置{{ 3}}但我不知道如何在新的Windows Popup中使用它

谢谢!

4 个答案:

答案 0 :(得分:1)

创建一个CSS类,它覆盖所有继承的属性,然后从div中删除所有类,并添加覆盖所有内容的css类。

答案 1 :(得分:1)

只需使用.css( jQuery method并记住在必要时追加!important以强制执行覆盖。

这将有效地在元素上设置style="属性。

答案 2 :(得分:1)

我认为您需要克隆目标节点以删除其中每个元素的属性:

var det = document.getElementById(divId);
if (det) {
    det = det.cloneNode();
    $(det).removeAttr("class").removeAttr("style").find("*").each(function(i, elem) {
        $(elem).removeAttr("class").removeAttr("style");
    });

    // …
}

答案 3 :(得分:1)

这些有用吗:

$("link[rel=stylesheet][class=must-remove-when-printing]").remove();

$("*[class]").removeAttr("class");
$("*[style]").removeAttr("style");