加载另一个DOM更改的页面

时间:2012-11-16 12:12:13

标签: jquery dom

我正在尝试从 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。

1 个答案:

答案 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>