Javascript 使用jQuery重新加载包含动态内容的div

Javascript 使用jQuery重新加载包含动态内容的div,javascript,jquery,Javascript,Jquery,任务是重新加载列表div及其所有内容 内容是space和foo,它们也是用javascript生成的 <div id="list-wrapper"> <div id="list"> <div class="space"></div> <div class="foo"></div> <div class="foo"></div> &

任务是重新加载
列表
div及其所有内容

内容是
space
foo
,它们也是用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>
但这不能正常工作-重新加载的
列表
为空:

<div id="list-wrapper">
    <div id="list">
    </div>
</div>
同样,新的
列表
为空

怎么做


编辑以明确任务。想象一下,我们在网页上手动进行了一些更改,打开Chrome开发工具并删除了3个
foo
中的1个。然后,我们希望脚本将重新加载
列表
div,以显示所有3个
foo
,而不是2个。

$。load
将对同一URL执行HTTP请求,并在不应用任何javascript的情况下获取标记。既然您是说,
#list
由javascript填充,那么它将是空的

从jQuery:

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

有一种简单的方法可以克隆加载的元素
。克隆

$('#list').clone().prop('id', '#list-wrapper').appendTo('body');

$.load
将对同一URL执行HTTP请求,并在不应用任何javascript的情况下获取标记。既然您是说,
#list
由javascript填充,那么它将是空的

从jQuery:

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

有一种简单的方法可以克隆加载的元素
。克隆

$('#list').clone().prop('id', '#list-wrapper').appendTo('body');

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

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

   URL+ "#list");

ur代码(即#列表)中的id选择器存在漏洞

只需先清空div的html,然后每次加载新的html即可

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

   URL+ "#list");


您的代码(即#列表)中的id选择器存在漏洞。

您可以添加更多详细信息吗?您第一次是如何加载它的?看起来您正试图加载当前的
#列表,根据您的说法,该列表是空的。@JesusAngulo第一次加载它不是由我加载的。这是一个Chrome的插件。第一次它是由Chrome本身生成的,不是由我生成的。你的问题不够清楚,无法得到正确的答案。您是想显示动态创建的内容,还是想加载其他地方的数据。@Franco。我写了这篇文章,请看底部的“编辑”。你能添加更多细节吗?您第一次是如何加载它的?看起来您正试图加载当前的
#列表,根据您的说法,该列表是空的。@JesusAngulo第一次加载它不是由我加载的。这是一个Chrome的插件。第一次它是由Chrome本身生成的,不是由我生成的。你的问题不够清楚,无法得到正确的答案。您是想显示动态创建的内容,还是想加载其他地方的数据。@Franco。我写了这篇文章的日期,请看底部的“编辑”。好的,这就说明了实际问题。谢谢你的支持,投了赞成票。但是怎样才能让它提前重新加载呢?我刚刚添加了一个小错误。嗯。这将创建第二个
列表
,即第一个列表的精确副本(未重新加载)。首先,为什么我有两个
列表而不是一个?第二,第二个不会重新加载。我更新了帖子,以明确任务。不管怎样,你发布的代码很有用。那么现在的问题就不同了。您希望通过执行AJAX请求再次调用javascript。我甚至不知道Chrome扩展是否会将javascript注入到请求中,因此它甚至可能不会以这种方式工作。谢谢你的支持,投了赞成票。但是怎样才能让它提前重新加载呢?我刚刚添加了一个小错误。嗯。这将创建第二个
列表
,即第一个列表的精确副本(未重新加载)。首先,为什么我有两个
列表而不是一个?第二,第二个不会重新加载。我更新了帖子,以明确任务。不管怎样,你发布的代码很有用。那么现在的问题就不同了。您希望通过执行AJAX请求再次调用javascript。我甚至不知道Chrome扩展是否会将javascript注入到请求中,因此它甚至可能无法以这种方式工作。