Javascript 为什么jQuery empty()函数返回值的第一个元素是元素本身?
我在javascript函数中看到如下代码: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函数的预期行为,即
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:添加了更多详细信息来说明这一点。