我正在使用jQuery并尝试从外部HTML文件加载正文。
如果我尝试加载一些div
:
$('body').load('example.html #content');
但我无法做到这样的事情:
$('body').load('example.html body');
答案 0 :(得分:9)
jQuery使用浏览器的.innerHTML 用于解析检索到的属性 记录并将其插入 目前的文件。在此过程中, 浏览器经常过滤元素 < html>,< title>等文档, 或者< head>元素。结果, 由.load()检索的元素可能不会 与文件完全相同 由...直接检索 浏览器。
阅读上述内容,您的浏览器似乎只能返回正文innerHTML。这显然应该与请求body
相同,但可能导致错误,因为找不到body
?
我建议尝试使用其他浏览器。
答案 1 :(得分:3)
如果你想加载整个身体,$('body').load('example.html');
就足够了。
如果没有,你能解释一下原因吗?
无论如何,史蒂夫提供的解决方案是正确的。
答案 2 :(得分:2)
我猜你需要的是添加一个iframe。将URL传递给其src属性。那么你的整个html将被加载到这个iframe中。为您的问题提供简洁明了的解决方案。一切顺利: - )
答案 3 :(得分:2)
当您使用不带选择器的加载时,它会删除<html>
,<head>
和<body>
标记,但会留下<head>
和{{1}的所有子项完整的,包括标题,脚本和样式标记。但是,当您使用选择器时,它会被应用after the body tag is stripped,因此无法与其匹配。
相反,将所有正文内容包装在另一个标记内,然后选择该标记:
<body>
现在,您可以像这样加载它:
<html><head><title>Hello!</title</head>
<body>
<div id="jquery-load-point">
... <!-- rest of body content -->
</div>
</body>
</html>
答案 4 :(得分:1)
确保使用的是jQuery 1.5.1而不是1.5。 1.5中的加载功能存在问题。我在jquery .load() doesn't work
回答了类似的问题另一件事是在不同的浏览器中尝试它以确保它不是浏览器问题。 Chrome不允许您在使用localhost工作时使用加载而不进行一些调整。