jquery - 如何动态地将数据从div正确复制到新窗口

时间:2013-05-14 01:21:03

标签: jquery printing

我有问题。我试图创建一个非常简单的打印预览,当用户单击Print Preview按钮时,它将打开一个新窗口并复制我想要的数据。有一些元素,如我不想包含的复选框,但我能够成功地做到这一点。我的问题是当加载新窗口时,原来的div也被改变了。就像在原始div中删除复选框一样,也会出现Print按钮。

我希望divData的原始div保持不变。我没有新窗口的问题。

顺便说一句,我的jquery代码如下:

        $("#btnPrintPreview").click (function () {
            var printContents = new $("#divData");
            var myWindow = window.open("", "popup","width=1000,height=600,scrollbars=yes,resizable=yes," +  
                "toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0");
            var doc = myWindow.document;
            doc.open();
            $(printContents).find(".tCheckboxes").remove();
            var button = "<input type='button' id='btnPrint' value='Print' style='float: right;' onclick='window.print();'/>";
            $(printContents).append($(button));
            doc.write($(printContents).html());
            doc.close();
        });

要在此处查看我的演示,请访问http://jsfiddle.net/dU7et/链接。

PS:点击Print Preview后,请检查主div。

请帮助我....

1 个答案:

答案 0 :(得分:3)

为此,要执行您想要的操作,请将以下行更改为:

// Before:
var printContents = new $("#divData");
// After:
var printContents = $("#divData").clone();

有关详细信息,请参阅http://api.jquery.com/clone/