如何从DOM中删除JQuery对话框

前端之家收集整理的这篇文章主要介绍了如何从DOM中删除JQuery对话框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到一个需要在创建新对话框之前手动删除旧对话框的情况.在另一个线程中,提出了以下方法
$('.ui-dialog').empty().remove();

我认为这样会有效,但是我还有其他的对话框,我不想从DOM中删除,我认为这个方法会摆脱所有这些对话框.使用Firebug检查页面显示,一旦JQuery从您提供的html中创建一个对话框,它将提供标准的包装器div,所有这些都包含相同的类.这些是:

ui-dialog ui-widget ui-widget-content ui-corner-all  ui-draggable

所以它们是非常通用的,很难找到需要去的外部包装类的独特特性.我试图找到一种方法删除我要删除的对话框,并离开其他对象.有任何想法吗?

解决方法

我知道这个话题很旧,但是我最近遇到了一样的情况.对于我的情况,我动态地创建对话框并使用.load(). jQuery真的做的很古怪的东西与DOM,并导致我很大的麻烦.关闭后DOM中留下了不必要的“垃圾”,有时候删除对话框.我无法删除它里面的“div”,因为我实际上使用div的内容来维护一些状态信息.我想出了以下代码,并以有限的方式进行了测试,以验证它是否有效.它似乎删除了jQuery留下的所有不必要的行李.我甚至测试它打开几个窗口,并监视过程中DOM的状态,以确保每个对话框的状态都保持正确.我将在这里发布整个代码(除了加载的对话框,只不过是其中包含一些代码的div.
<html>
        <head>
            <link href="css/redmond/jquery-ui-1.8.1.custom.css" type="text/css" rel="stylesheet" media="screen" />
            <script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
            <script src="js/jquery-ui-1.8.1.custom.min.js" type="text/javascript"></script>

            <script type="text/javascript">
                $(document).ready (function () {
                    $("#openDialog").click (function () {
                        $("<div></div>")
                            .load ("loadDialogTest.PHP")
                            .appendTo ($("#containingDiv"))
                            .dialog ({
                            autoOpen: 'false',title: 'Test This!',close: function () {
                                $(this).dialog ('destroy').remove ();
                            }
                        }).dialog ('open');
                    });
                });
            </script>
        </head>

        <body>
            <a href="#" id="openDialog">Open it</a>

            <div id="containingDiv">
            </div>
        </body>

    </html>

猜你在找的HTML相关文章