使用jQuery重新加载具有动态内容的div

时间:2015-12-19 19:07:12

标签: javascript jquery

任务是重新加载list div及其所有内容。

内容为spacefoo,也是使用javascript生成的。

<div id="list-wrapper">
    <div id="list">
        <div class="space"></div>
        <div class="foo"></div>
        <div class="foo"></div>
        <div class="foo"></div>
        <div class="space"></div>
    </div>
</div>

我试图使用

$("#list-wrapper").load(document.URL + " #list");

但这不能正常工作 - 重新加载的list为空:

<div id="list-wrapper">
    <div id="list">
    </div>
</div>

我也试过

$("#list").load(document.URL + " #list");

同样,新list为空。

该怎么做?

修改清除任务。想象一下,我们手动对网页进行了一些更改,打开Chrome开发工具并删除了3个foo中的1个。之后,我们希望脚本会重新加载list div,以显示所有3个foo,而不是2。

2 个答案:

答案 0 :(得分:0)

#list会对同一个网址发出HTTP请求,并在没有应用任何javascript的情况下获取标记。由于您说.clone由javascript填充,因此它将为空。

来自jQuery docs

  

使用不带后缀选择器表达式的URL调用.load()时,在删除脚本之前将内容传递给.html()。这将在丢弃之前执行脚本块。但是,如果使用附加到URL 的选择器表达式调用.load(),则在更新DOM之前会删除脚本,因此不会执行脚本。

可以轻松克隆加载的元素$('#list').clone().prop('id', '#list-wrapper').appendTo('body');

ocamlfind list

答案 1 :(得分:0)

首先清空div的html,然后每次加载新的html。

$("#list").html( ).load(document.

   URL+ "#list");

你的代码中的id选择器有空位(即#list)