Я использую jQuery и хочу проверить наличие элемента на моей странице. Я написал следующий код, но он не работает:
if($("#btext" + i) != null) {
//alert($("#btext" + i).text());
$("#btext" + i).text("Branch " + i);
}
Как проверить наличие элемента?
lenght
вместоlength
; это орфографическая ошибка.length
.(Поскольку у меня, кажется, недостаточно репутации, чтобы проголосовать за ответ ...)
Волк написал:
Хотя верно, что вызов свойства length для неопределенного или нулевого объекта приведет к сбою браузеров, результат работы селекторов jQuery ($ ('...')) никогда не будет нулевым или неопределенным. Таким образом, предложения кода не имеют смысла. Используйте один из других ответов, они имеют больше смысла.
(Обновление 2012 г.) Поскольку люди смотрят на код, и этот ответ довольно высок в списке: последние пару лет я использовал этот небольшой плагин:
Я думаю, что $ ('div'). Any () читается лучше, чем $ ('div'). Length , плюс вы не будете так сильно страдать от опечаток: $ ('div'). Ayn () выдаст ошибку времени выполнения , $ ('div'). длина будет молча, скорее всего, всегда будет ложной.
__
редактирует ноябрь 2012:
1) Поскольку люди склонны смотреть на код, а не читать то, что говорится вокруг кода, я добавил две большие заметки лектора предостережения в цитируемый код Wolf.
2) Я добавил код небольшого плагина, который я использую для этой ситуации.
источник
Функция поиска возвращает массив совпадающих элементов. Вы можете проверить, равна ли длина нулю. Обратите внимание на изменение, чтобы искать элементы только один раз и использовать результаты по мере необходимости.
Кроме того, вы пытались просто использовать текстовую функцию - если элемент не существует, он ничего не будет делать.
источник
Функция jquery $ () всегда возвращает ненулевое значение - средние элементы соответствуют выбранному вами селектору. Если элемент не был найден, он вернет пустой массив. Так что ваш код будет выглядеть примерно так:
источник
В jQuery 1.4 вы получаете функцию $ .isEmptyObject, но если вы вынуждены использовать более старую версию jQ, как мы, бедные разработчики Drupal, просто украдем этот код:
Используйте это как:
источник
Независимо от того, что вы выбрали, функция
$()
всегда возвращает объект jQuery, чтобы его нельзя было использовать для тестирования. Лучший способ (если не единственный) - использоватьsize()
функцию или свойство собственной длины, как описано выше.источник
Объект jQuery, который возвращается всеми нативными методами jQuery, НЕ является массивом, это объект со многими свойствами; один из них является свойством длины. Вы также можете проверить size () или get (0) или get () - 'get (0)' работает так же, как и доступ к первому элементу, то есть $ (elem) [0]
источник
А как насчет использования "undefined"?
источник
используйте
$("#selector").get(0)
для проверки с нулевым, как это. get возвращает элемент dom, пока вы не обработаете массив, где вам нужно проверить свойство length. Лично мне не нравится проверка длины для нулевой обработки, она почему-то меня смущает :)источник
Используя свойство length, вы можете сделать это.
источник
когда объект пуст, возвращаем эту ошибку:
Я пытаюсь этот код:
источник
источник
Вызов свойства length для неопределенного или нулевого объекта приведет к сбою браузеров IE и webkit!
Вместо этого попробуйте это:
или
источник