display:当通过ajax在div中加载html页面时,不会破坏格式



我有一个div,它使用display:none来隐藏元素,而不会破坏任何页面格式/布局。但是,如果我使用ajax获得另一个html页面,并在document.ready()事件期间使用jQuery设置该div的innerhtml,那么格式就会中断。

请注意,如果您注释掉***内部的代码,则格式不会中断

Firebug没有显示任何JS错误。

以下是ajax和设置内容代码:

        var htmlStuff;
        $.ajax({
          url: "temp.html",
          cache: false,
          success: function(html){
               htmlStuff= html;
               **$('#myDiv').html(htmlStuff);**
          }
        });

这是div:

<div id = "myDiv" style="display:none"></div>

看起来您正在获取"temp.html"文件的全部内容,并将其放入您的div 中

如果"temp.html"包含一个完整的html文档(包括htmlheadbody元素),这将使当前页面上的html无效,并可能导致您看到的问题。

在javascript中,您可能需要搜索"temp.html"的正文,并且只插入正文的内容,以确保排除<body></body>标记。

如果从display:none;设置div,然后将其更改为块值,则会破坏布局,因为display:none;不会占用html布局中的空间。

最新更新