Стоит проверить, существует ли элемент первым? - PullRequest
1 голос
/ 04 июля 2011

контекст: Я создаю фаворит система, использующая html localstorage API (с резервированием сессии php). Если любимый товар находится на страницы, добавьте класс «любимый» с помощью js ...

Если я не знаю, будет ли присутствовать идентификатор элемента на странице. Лучше проверить, существует ли он первым, или jQuery вернет false так же эффективно?

Ответы [ 3 ]

0 голосов
/ 04 июля 2011

Скорее всего это не так. Если jQuery не находит совпадений, ему нечего будет перечислять, и он просто будет двигаться дальше. Другими словами, что-то вроде этого не нужно:

var $favorite = $("#favorite");
if ($favorite.length) {         // Test whether it exists
  $favorite.doSomething();
}

и лучше записывается как:

$("#favorite").doSomething();
0 голосов
/ 04 июля 2011

Существует тестовый код для аналогичной ситуации на jsperf .

if ($('#item_123').length === 1) {
 $('#item_123').remove();
}

VS

 $('#item_123').remove(); //this turned out slower for me in chrome 13
0 голосов
/ 04 июля 2011

В любом случае, вы всегда будете выполнять $(). Поэтому сохраняйте переменную, ссылающуюся на результат этого метода, и не будет потерь (или весьма незначительных потерь) в эффективности, проверив, существует ли он.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...