Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带选择器的JQuery引用变量,数据错误_Javascript_Jquery_Variables_Jquery Selectors - Fatal编程技术网

Javascript 带选择器的JQuery引用变量,数据错误

Javascript 带选择器的JQuery引用变量,数据错误,javascript,jquery,variables,jquery-selectors,Javascript,Jquery,Variables,Jquery Selectors,我的jQuery代码中有一个小问题。我是这样做的: HTML: <div class="parent"> <div class="selector">....</div> </div> .... JS: $ref=$('.parent.selector'); $parent=$('.parent'); $ref.size()-->1 $parent.append(“..”); $ref.size()-->始终为1。。。 那么存储在V

我的jQuery代码中有一个小问题。我是这样做的:

HTML:

<div class="parent">
    <div class="selector">....</div>
</div>

....
JS:

$ref=$('.parent.selector');
$parent=$('.parent');
$ref.size()-->1
$parent.append(“..”);
$ref.size()-->始终为1。。。
那么存储在VAR中的用途是什么。。。如果我不使用参考变量,一切都很好。 谢谢。

我喜欢

$('<div class="selector">....</div>').appendTo($parent);
$parent.size(); --> gives 2
$('..')。附加到($parent);
$parent.size();-->给出2

当您将对象存储在
$ref
中时,您需要将div附加到div类
选择器

之后,它只有一个子对象,因此它将始终显示
1

附加新项后,必须再次检查DOM

$ref = $('.parent .selector');
$parent = $('.parent');

$ref.size() --> 1 
$parent.append('<div class="selector">....</div>');
$('.parent .selector').size() --> 2
$ref=$('.parent.selector');
$parent=$('.parent');
$ref.size()-->1
$parent.append(“..”);
$('.parent.selector').size()-->2

只有在不动态添加或删除元素时,缓存结果才是好的。如果这样做,与选择器匹配的元素集将不再相同,因此再次查询是有意义的。jQuery只选择当前存在的元素。如果您更改文档的结构,您必须重新选择元素。我认为两者都是相同的…请参见iam追加到$ref对不起,但这不是jQuery中正确使用的追加。我知道,我只是给出了另一种方法,以获得更全局的视图。这会不会将
.selector
附加到
.selector
中,而不是
父级
?是的,它会添加到集合中的每个元素实际上,我甚至没有看到这一点
$ref = $('.parent .selector');
$parent = $('.parent');

$ref.size() --> 1 
$parent.append('<div class="selector">....</div>');
$('.parent .selector').size() --> 2