带有选择器的 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 引用变量,错误的数据的主要内容,如果未能解决你的问题,请参考以下文章

带有所选元素的子级的 JQuery 选择器 not()

带有 ID 的 jQuery 选择器的性能

jquery 选择器加变量

[ jquery 过滤器 children() ] 此方法用于在选择器的基础之上返回被选元素的所有直接子元素

带有多级解析器/子解析器的 Argparse 可选参数

带有 :not 选择器的 CSS 在作为 jquery 选择器放置时工作,而不是纯 CSS [重复]