【问题标题】:JQuery reference variable with selector, wrong data带有选择器的 JQuery 引用变量,错误的数据
【发布时间】: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 只选择当前存在的元素。如果更改文档的结构,则必须重新选择元素。

标签: javascript jquery variables jquery-selectors


【解决方案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 吗?
    • 是的,它实际上会添加到集合中的每个元素中,我什至没有看到
    猜你喜欢
    • 2011-06-21
    • 2016-11-15
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    相关资源
    最近更新 更多