2010-03-10 6 views
0

, как все вы знаете,выбрать по идентификатору в JQuery

$("#ID") 

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

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

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

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

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

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

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

+0

жаль мой бедный английский –

+2

Это не из-за опечатки в купоне/Conpon, это? :) – deceze

ответ

3

Вы можете проверить 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 свойства.

+0

большое спасибо! –

0

Try:

$("#htrBuyerCouponNotice").size() 

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

1

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

чек на $ («# someID») длина -. Должны работать, если я помню corretly

1

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

Эндрю

Смежные вопросы