Проверьте, существует ли div с jquery

Возможный дубликат:
Есть ли функция "существует" для jQuery

Да, я знаю, что это было задано очень много. Но это меня смущает, так как результаты поиска в Google для этого поиска показывают разные методы (перечисленные ниже)

$(document).ready(function() {
    if ($('#DivID').length){
        alert('Found with Length');
    }

    if ($('#DivID').length > 0 ) {
        alert('Found with Length bigger then Zero');
    }

    if ($('#DivID') != null ) {
        alert('Found with Not Null');
    }
});

Какой из трех является правильным способом проверить, существует ли div?

EDIT: Это явный взгляд на то, что люди не хотят узнать, что лучше подходит из трех разных методов. Этот вопрос на самом деле не посвящен "Как проверить, существует ли div", но он о том, какой метод лучше, и, если кто-то может объяснить, почему это лучше?

Ответ 1

Первый из них является самым кратким, я бы пошел с этим. Первые два совпадают, но первый немного меньше, поэтому вы будете экономить на байтах. Третий неверно, потому что это условие всегда будет оценивать true, потому что объект никогда не будет иметь значение null или false.

Ответ 2

Если вы просто проверяете наличие идентификатора, нет необходимости входить в jQuery, вы могли бы просто:

if(document.getElementById("yourid") !== null)
{
}

getElementById возвращает null, если его невозможно найти.

Ссылка.

Если вы планируете использовать объект jQuery позже, я бы предложил:

$(document).ready(function() {
    var $myDiv = $('#DivID');

    if ( $myDiv.length){
        //you can now reuse  $myDiv here, without having to select it again.
    }


});

Селектор всегда возвращает объект jQuery, поэтому не нужно проверять его на null (мне было бы интересно, есть ли край, где вам нужно проверить null - но я не думаю, что есть).

Если селектор не находит ничего, то length === 0, который является "ложным" (при преобразовании в bool его false). Поэтому, если он что-то находит, он должен быть "правдивым", поэтому вам не нужно проверять > 0. Только для этого "правдивость"

Ответ 3

Как упоминалось в karim79, первое является самым кратким. Однако я мог бы утверждать, что второй более понятен, поскольку некоторым программистам Javascript/jQuery не известно/известно, что значения non-zero/false оцениваются до true в if-statement. И из-за этого третий метод неверен.