这是关于jQuery API的设计的问题,而不是使用细节。
为什么jQuery对象是DOM元素的集合而不是jQuery对象的集合?
仅使用jQuery对象将允许在整个代码中以相同的方式完成所有DOM操作。似乎大多数使用模式立即将DOM元素转换为jQuery对象。据我了解,期望进行许多DOM-element-to-jQuery-object转换,这就是他们选择速记$
函数的原因。
为什么这样?为什么不假设我们想通过jQuery操纵DOM并避免在任何地方进行显式转换?
答案 0 :(得分:3)
在不需要jquery对象时创建jquery对象是低效的。例如:
$("a").each(function(){
console.log(this.href);
});
由于href始终作为DOMElement的属性提供,因此将其转换为jQuery对象并使用.attr
将是一种浪费。
为了让jQuery使每一个成为一个jQuery对象,它必须为它迭代的每个元素创建一个新的jQuery对象,如果你不需要它成为一个jQuery对象,这是一种浪费。相同的思维过程可以应用于事件处理程序,过滤器方法以及迭代元素的任何其他方法。
答案 1 :(得分:-1)
jQuery对象允许您在任何Dom元素上使用各种有用的jQuery函数,这要归功于Dom遍历函数。 无论您正在操作什么相关的jQuery对象,您仍然可以获得原始的Dom元素。