带有选择器的 JQuery 引用变量,错误的数据
Posted
技术标签:
【中文标题】带有选择器的 JQuery 引用变量,错误的数据【英文标题】:JQuery reference variable with selector, wrong data 【发布时间】:2013-07-14 16:23:30 【问题描述】:我的 jQuery 代码有一点问题。我做这样的事情:
html:
<div class="parent">
<div class="selector">....</div>
</div>
JS:
$ref = $('.parent .selector');
$parent = $('.parent');
$ref.size() --> 1
$parent.append('<div class="selector">....</div>');
$ref.size() --> always 1 ...
那么在 vars 中使用 store 有什么用...如果我不使用引用 var,一切都很好。 谢谢。
【问题讨论】:
缓存结果只有在您不动态添加或删除元素时才有用。如果你这样做了,匹配选择器的元素集就不再一样了,那么再次查询就有意义了。 jQuery 只选择当前存在的元素。如果更改文档的结构,则必须重新选择元素。 【参考方案1】:当您将对象存储在$ref
中时,它只有一个子对象,因此它将始终显示1
追加新项目后,您必须再次通过 DOM。
$ref = $('.parent .selector');
$parent = $('.parent');
$ref.size() --> 1
$parent.append('<div class="selector">....</div>');
$('.parent .selector').size() --> 2
【讨论】:
【参考方案2】:点赞
$('<div class="selector">....</div>').appendTo($parent);
$parent.size(); --> gives 2
需要在div类selector
后面追加div
【讨论】:
我认为两者都是一样的...见 iam 附加到 $ref 对不起,这不是 jQuery 中 append 的正确用法。 我知道,我只是提供另一种方法以获得更全局的视图。 那不是将.selector
附加到.selector
而不是parent
吗?
是的,它实际上会添加到集合中的每个元素中,我什至没有看到以上是关于带有选择器的 JQuery 引用变量,错误的数据的主要内容,如果未能解决你的问题,请参考以下文章