Конспект JS-course

Задачи

Задача

Документ:

<ul>
  <li><a href="http://jquery.com">jQuery</a></li>
  <li><a href="http://sizzlejs.com">Sizzle</a></li>
  <li><a href="http://blog.jquery.com">jQuery Blog</li>
</ul>

Что вернёт такой вызов: $(&#39;UL&#39;)[0]?

  1. А вызов: $(&#39;UL&#39;).get(0).eq(0)?
  2. А такой: $(&#39;UL&#39;).eq(0).get(0)?
  3. А что они бы вернули, если бы UL не было в документе?

Решение

Вначале посмотрим, что будет, если элементы UL есть.

  1. Первый элемент коллекции — это как раз DOM-элемент &lt;ul&gt;
  2. Вызов $(&#39;UL&#39;).get(0) также вернёт DOM-элемент, и у него нет метода eq, так что будет ошибка.
  3. Этот вызов отработает корректно: вызов eq(0) возвратит коллекцию из первого &lt;ul&gt;, из которой get(0) далее возьмёт сам элемент.

А что, если UL в документе нет?

  1. Первый вызов вернёт undefined.
  2. Второй вызов вернёт ошибку, т.к. $(&#39;UL&#39;).get(0) возвратит undefined, и дальше eq не сработает.
  3. Третий вызов отработает корректно: вызов eq(0) возвратит пустую коллекцию, из которой get(0) вернёт undefined.