首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >防止元素更新- JQuery

防止元素更新- JQuery
EN

Stack Overflow用户
提问于 2014-06-13 12:37:33
回答 3查看 559关注 0票数 2

我选择页面的一个元素:

代码语言:javascript
复制
$mainSection = $('#main');

然后,通过AJAX将更多的元素添加到<div id="main"></div>元素中。下次我调用$mainSection时,新添加的元素也在其中。但我不想那样。我希望变量$mainSection只包含页面初始呈现中的内容。我找不到阻止jQuery更新的方法。

我试过这个:

代码语言:javascript
复制
$(document).ready(function(){
  $mainSection = $('#main').clone(true);

然后向#main添加新元素,然后检查它们是否是通过以下方式找到的:

代码语言:javascript
复制
$foundElement = $($mainSection + ":not(:has(*)):not(script):contains('"+newlyAddedContent+"')");

在页面加载时,它们不在那里。但在我把它们加进去后,它们就会被找到。

我也试过:

代码语言:javascript
复制
$mainSection = $('#main').html();
$mainSection = $($mainSection);

也没起作用。

这里有一个jsFiddle来说明我的观点:

http://jsfiddle.net/VEQ2E/2/

问题就隐藏在这一行中:$foundElement = $($mainSection +$mainSection)

当我这样做的时候,它总是在整个文档中搜索。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-13 13:39:56

您的问题不在于您的克隆正在被更改,而是您用来尝试在克隆中查找某些内容的选择器。你的代码是这样的:

代码语言:javascript
复制
$($mainSection + ":not(:has(*)):not(script):contains('"+newlyAddedContent+"')");

用字符串连接对象将将对象转换为字符串,简单地说是"[object Object]",然后选择器将只查看":not(:has..."

相反,您应该使用筛选器:

代码语言:javascript
复制
$foundElement = $mainClone.filter(":not(:has(*)):not(script):contains('world')");

现在,这将只在$mainClone中查找与该筛选器匹配的项。

JSFiddle

票数 1
EN

Stack Overflow用户

发布于 2014-06-13 12:40:39

您可以使用.clone(true)

代码语言:javascript
复制
$mainSection = $('#main').clone(true);

它每次都取这个div初始状态的clone/copy

注意:

代码语言:javascript
复制
.clone( [withDataAndEvents ] [, deepWithDataAndEvents ] )

withDataAndEvents :布尔值(缺省值: false)

deepWithDataAndEvents :布尔值(默认值:withDataAndEvents值)

指示是否应复制克隆元素的所有子元素的事件处理程序和数据的布尔值。

票数 3
EN

Stack Overflow用户

发布于 2014-06-13 12:40:45

您可以采取以下几种方法:

在更新之前缓存#main的内容。这只给出了元素的内容,而没有元素:

代码语言:javascript
复制
mainsectionContents = $('#main').html();

或者在更新之前缓存#main的副本。这将为您提供与元素一起的内容,并且取决于您可能希望复制的其他内容,请随意检查api文档

代码语言:javascript
复制
$mainsectionCopy = $('#main').clone();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24205487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档