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注入到请求中,因此它甚至可能无法以这种方式工作。