我有一个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文档(包括html
、head
和body
元素),这将使当前页面上的html无效,并可能导致您看到的问题。
在javascript中,您可能需要搜索"temp.html"的正文,并且只插入正文的内容,以确保排除<body>
和</body>
标记。
如果从display:none;
设置div,然后将其更改为块值,则会破坏布局,因为display:none;
不会占用html布局中的空间。