1

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

这里是另一个.html的片段

<html>
    .........................
    <head>
    <script type="text/javascript">
        $(document).ready(function() {
             anotherMethodInvocation();
        });
    </script>
    </head>

    <div id="demo_div"></div>
</html>

接下来在JS for another.html我有:

function anotherMethodInvocation() {    
    $("#demo_div").append("<strong>Hello</strong>");
}

所以问题是为什么我(在加载时的回调函数中)只是静态 HTML,但它没有改变?

更新 1:

a)“#hidden_​​demo_div”位于initial.html(链接带有.load的JS代码的HTML)。该元素在 BODY 声明:

b) 即使我放在 BODY 上它也不起作用(到一个 html 文件)

<div id="hidden_demo_div"></div>

和(到另一个 html 文件)

<div id="demo_div"></div> 

在身体。

4

1 回答 1

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>
于 2012-11-16T12:29:19.257 回答