Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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 empty()函数返回值的第一个元素是元素本身?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么jQuery empty()函数返回值的第一个元素是元素本身?

Javascript 为什么jQuery empty()函数返回值的第一个元素是元素本身?,javascript,jquery,Javascript,Jquery,我在javascript函数中看到如下代码: A.empty()[0].options.add(new Option('', '')); 一个是domselect元素。似乎A.empty()[0]引用的是同一个select元素。这意味着empty返回一个数组,其第一个元素是dom对象本身(即此处的A) 有人能解释一下这种行为吗?或者把我链接到某个我能读到的关于这种行为的地方?(或者我完全误解了这个代码!) 更新:查看API文档确实表明返回值是jQuery。这是否是jQuery函数的预期行为,即

我在javascript函数中看到如下代码:

A.empty()[0].options.add(new Option('', ''));
一个是domselect元素。似乎
A.empty()[0]
引用的是同一个select元素。这意味着empty返回一个数组,其第一个元素是dom对象本身(即此处的A)

有人能解释一下这种行为吗?或者把我链接到某个我能读到的关于这种行为的地方?(或者我完全误解了这个代码!)

更新:查看API文档确实表明返回值是jQuery。这是否是jQuery函数的预期行为,即其返回值的第一个元素始终是调用该函数的元素(假设返回值的类型为jQuery)?

empty()
仅删除所有子节点并返回原始元素

[0]
只返回集合中的第一个DOM元素。jQuery对象包含HTML元素的“类似数组”的集合

后续行动: jQuery对象始终是0个或更多HTML元素的集合。这是jQuery最好的功能之一,允许编写在没有匹配元素时不会失效的代码(尽管当jQuery对象的长度为0时,如果尝试访问属性,[0]将失效,但[0]是一种非jQuery方式)。

空()方法从选定元素中删除所有子节点和内容


并将选项添加到带有空“”的select元素。

a.empty()将返回数据集(类似于数组,但不是数组),因此您使用的第0个元素jquery通常会返回所选元素,因此您可以链接命令,与您给出的示例完全相同。在您给出的示例中,我猜想
A
是一个jQuery对象(DOM select元素的),然后使用
[0]
获取DOM元素本身。您的
A
变量似乎包含一个jQuery对象。如果是这样,JS/jQuery的mish mash可以转换为
A.empty().first().append(“”)
@qartal如果您假设jQuery选择器总是恰好找到1个元素,那么您一定会在接下来的某个时间遇到麻烦$(选择器).length告诉您有多少个元素,您可以使用$(选择器)[index]为每个元素获取DOM对象。jQuery对象可能是空的,所以在使用它之前需要检查。我没有得到[0]部分@。如果empty()返回原始元素,则原始元素是单个dom select对象。这不是一个收藏。为什么需要[0]。你能再解释一下吗?在你的情况下,它可能不是一个集合,但它可能是。一个jQuery对象可以容纳N个DomeElement。@qartal:添加了更多详细信息来说明这一点。