Выбрать по id в jquery

59
6

как вы знаете


$("#ID")  

возвращает элемент с идентификатором.


но этот код всегда возвращает даже там никакого элемента.


alert($("#htrBuyerCouponNotice"));
alert(document.getElementById("htrBuyerConponNotice"));

в этом случае.


эти два результата строки различны.


Я хочу проверить, есть ли элемент htrBuyerCouponNotice.


document.getElementByID возвращает null, если нет элемента.

спросил(а) 2010-03-10T09:39:00+03:00 10 лет, 8 месяцев назад
1
Решение
83

Вы можете проверить свойство length объекта jQuery для определения количества согласованных элементов, например:


alert($(selector).length);

Вы можете использовать его непосредственно в операторах if, например:


var $el = $(selector);

if ($el.length) { // only 0 will coerce to false
// ...
}

Но большую часть времени вам действительно не нужно знать, соответствуют ли элементы, выбранные селектором, или нет, потому что встроенные методы jQuery будут просто проигнорированы, например:


$('#nonExistent').hide();

Вышеприведенный оператор не вызывает ошибок, даже если элемент не найден.


jQuery также имеет метод size, но я бы рекомендовал вам использовать свойство length напрямую, поскольку он общедоступен, метод size немного медленнее, поскольку он является только функцией, которая возвращает значение length.

ответил(а) 2010-03-10T09:42:00+03:00 10 лет, 8 месяцев назад
60

потому что jQuery возвращает список выбранных элементов, если нет элементов, вы все равно получаете возврат - его просто пустой список.

проверить для $('# someID'). length - должен работать, если я правильно помню

ответил(а) 2010-03-10T09:43:00+03:00 10 лет, 8 месяцев назад
59

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


Эндрю

ответил(а) 2010-03-10T09:43:00+03:00 10 лет, 8 месяцев назад
41

Try:


$("#htrBuyerCouponNotice").size()

Он будет равен нулю, если нет узлов с этим идентификатором, 1, если есть.

ответил(а) 2010-03-10T09:41:00+03:00 10 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема