Мне нравилось смотреть на это, когда я начинал с jQuery, что-то вроде этого (и да, я знаю, что все не совсем правильно, но они работали как свободные аналогии):
Элементы DOM - это узлы в вашем HTML-документе, которые вы обычно получаете с ванильным Javascript. Что-то вроде var foo = document.getElementById('bar')
дает вам необработанный элемент DOM.
Объекты-оболочки jQuery (для большой части разработки jQuery) - это, по сути, совершенно новый объект, содержащий элемент DOM. И это в основном контейнер. Это то, что вы получаете с чем-то вроде $('#bar')
, и это то же самое, что вы получаете, добавляя элемент DOM, такой как $(foo)
. Они включают различные функциональные возможности jQuery в ваших объектах DOM - вещи, которых у них обычно не было бы, если бы они были простыми объектами DOM.
Основываясь на этом, разница между .get()
и .index()
довольно проста.
.get(n)
возвращает элемент nth
DOM в объекте-оболочке jQuery. Что-то вроде $('input').get(0)
дает вам первый <input>
элемент в DOM, как если бы вы назвали document.getElementById()
на нем (или что-то подобное). .eq(n)
делает нечто подобное, но возвращает вместо этого объект-обертку jQuery, содержащий элемент DOM.
.index()
просто показывает, какую позицию занимает конкретный элемент в объекте-оболочке jQuery. Это очень похоже на то, как вы ожидаете, что они будут работать в массивах и других коллекциях.