Javascript Jquery使用id选择器返回一个列表
我在jquery和选择器使用以下代码时遇到问题:Javascript Jquery使用id选择器返回一个列表,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我在jquery和选择器使用以下代码时遇到问题: <div id="test"></div> console.log($('#test')); console.log($('#test')); 这总是返回一个类似[]而不是单个元素 这导致每次操作都必须编写$('#test')[0],而不仅仅是$('#test')。你知道为什么吗 Jquery不会返回HtmleElement,它返回一个Jquery对象 jQuery对象包含一个集合 文档对象模型(DOM)的定义
<div id="test"></div>
console.log($('#test'));
console.log($('#test'));
这总是返回一个类似[]代码>而不是单个元素
这导致每次操作都必须编写$('#test')[0]
,而不仅仅是$('#test')
。你知道为什么吗
Jquery不会返回HtmleElement,它返回一个Jquery对象
jQuery对象包含一个集合
文档对象模型(DOM)的定义
从中创建的元素
一个HTML字符串或从
因为jQuery方法经常
使用CSS选择器匹配元素
从文档中,元素集
在jQuery中,对象通常称为
“匹配元素”或“选定元素”的集合
元素”
jQuery对象本身的行为非常复杂
像一个数组;它有一个长度
属性和
对象可以通过其
数值索引[0]到[length-1]。
请注意,jQuery对象不是
实际上是一个Javascript数组对象,所以
它并没有一个系统的所有方法
true数组对象,如join()。
这是组合设计模式的一个示例
复合模式描述了一组对象,这些对象可以用与对象的单个实例相同的方式处理。实现此模式允许您以统一的方式处理单个对象和组合。在jQuery中,当我们访问单个DOM元素或一组DOM元素或对其执行操作时,我们可以以统一的方式吃掉这两个元素。由于ID不是唯一的,jQuery会查找具有此类ID的每个元素。因此它总是返回一个列表,因为不能保证元素正好是一个。jQuery封装了基于多种原因找到的任何对象。例如,它确保无论如何都不会返回null。相反,找到的元素被插入到一个列表中。事实上,即使搜索单个元素,机制始终保持不变,因此结果将被放入一个元素数组中,而不是元素本身。在jQuery中,最好将选择器视为匹配多个项,并且如果您使用each语法来迭代匹配项,那么解决方案将是最好的
$('#test').each(function() {
console.log($(this));
});
您想要检索什么?在
之间的数据?当您询问发生这种情况的原因(而不是如何避免)并得到回答时,它可以对此进行注释:您可以尝试document.getElementById('test')
这完全不正确。每个DOM元素的ID必须唯一,否则文档无效。以下内容来自jQuery文档():每个id值在文档中只能使用一次。如果有多个元素被分配了相同的id,则使用该id的查询将只选择DOM中第一个匹配的元素。但是,不应依赖此行为;具有多个元素且使用相同id的文档无效