有时候元素,有时返回jQuery对象?

时间:2014-07-14 16:15:43

标签: jquery jquery-selectors

我现在潜入jQuery已经有好几天了,而且看起来很好 - 但是我总是对此感到困惑: 有时候,jQuery选择会返回一个普通DOM元素的数组,有时我会得到一个类似于数组的jQuery对象。

例如选择ID:

var note = $('#note')
console.log(note.val());

工作得很好 - 它是一个jQuery包装的元素,我可以使用所有的jQuery方法。

但必须通过类

选择它
var notes = $('.notes');
_.each(notes, function (element) {
    element = $(element);
    console.log(element.val());
});

似乎对我来说非常难看 - 是不是有一种简单的方法可以让我总是回到jQuery包装?

我想这与性能方面有关,但我想通过非ID选择器选择并立即使用包装的jQuery对象。

由于

2 个答案:

答案 0 :(得分:1)

我认为您缺少的是当您使用$(selector)创建集合时,它会创建一个jQuery对象,其中包含由选择器表示的DOM元素的数组。

如果集合中的每个元素然后被包装在jQuery对象中,那么该对象将是巨大的。

简而言之,没有神奇的方法来做你想要的事情

答案 1 :(得分:0)

你正在获得JQuery包装集,它是包含其中所有元素的数组。在数组上运行$.each逐个迭代这些元素。

换句话说

$('.notes')[0]将为您提供该选择中的第一个元素。

在这种特殊情况下,如果您正在寻找价值,您只需执行console.log(element.value);

即可