Показать сообщение отдельно
  #13 (permalink)  
Старый 23.09.2009, 08:25
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Да динамические языки здесь ни при чем. В случае, когда работа идет с коллекцией элементов, что в jQuery, что просто в JavaScript, мы как бы сразу в голове держим вариант: когда коллекция пуста, тело цикла не выполнится. Но когда точно знаешь, что работаешь с одним элементом, этот вариант вылетает из головы, вспоминается это в последний момент, когда уже больше не знаешь в чем может быть ошибка.
Я несколько раз встречал в кодах коллег вообще не нужные и просто забытые цепочки на jQuery.
Когда писал свой диплом, то постарался хоть как-то избавится от этой проблемы, разделив способы работы с одним элементом и с коллекцией:
$("идентификатор").remove(); // если элемент не существует, будет ошибка.
$.tag("имя_тега").each("remove"); // выполнить метод remove для каждого найденного элемента
А проверять существование элементов не так уж часто и нужно, в большинстве случаев достаточно проверить наличие какого-то корневого элемента, а с дочерними уже можно работать без проверок.

Последний раз редактировалось Octane, 23.09.2009 в 08:27.
Ответить с цитированием