我正在尝试从 initial.html 不同的html页面加载:
$("#hidden_demo_div").load("modules/another.html", function (data) {
var value = $(data).filter("#demo_div");
var html = value.html(); // THERE IS NO <strong>Hello</strong> here!!!
}
这是 another.html
的摘录<html>
.........................
<head>
<script type="text/javascript">
$(document).ready(function() {
anotherMethodInvocation();
});
</script>
</head>
<div id="demo_div"></div>
</html>
接下来在JS的 another.html 我有:
function anotherMethodInvocation() {
$("#demo_div").append("<strong>Hello</strong>");
}
所以问题是为什么我(在我的回调函数中加载)只是静态HTML而不是它改变了?
更新1:
a)“#hidden_demo_div”位于 initial.html (带有.load的JS代码链接的HTML)。 这个元素在BODY声明:
b)即使我放在身体上它也不起作用 (对一个html文件)
<div id="hidden_demo_div"></div>
和 (到另一个html文件)
<div id="demo_div"></div>
在BODY。
答案 0 :(得分:0)
重要的是要意识到在加载远程页面时,主页中已经发生了ready
事件。这意味着包含在远程页面$(document).ready(function() {}
中的代码会立即触发。
如果远程文件中的代码在html之前,它引用它将找不到html,因为它在代码触发时不存在。
在远程页面中尝试此结构:
<div id="demo_div"></div>
<!-- "demo_div" now exists , can run code on it -->
<script type="text/javascript">
anotherMethodInvocation();
</script>