Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка на существование элемента в реальном времени js (https://javascript.ru/forum/misc/62828-proverka-na-sushhestvovanie-ehlementa-v-realnom-vremeni-js.html)

dkmrus 03.05.2016 13:29

Проверка на существование элемента в реальном времени js
 
Есть такой код:
$("#proverka").click(function(e) {
    if ($("#div_name")){
        alert("ок");
    }else{ 
        alert("не ок");
    }
});

<div id="div_name"></div>
<button type="button" id="proverka">Проверка</button>

Он проверяет наличие элемента #div_name только в таком состоянии, в котором загрузилась страница.

Т.е., к примеру, если удалить элемент:
$("#proverka").click(function(e) {
    if ($("#div_name")){
        alert("ок");
    }else{ 
        alert("не ок");
    }
}); 

$("#udalit").click(function(e) {
     $("#div_name").remove();
});

<div id="div_name"></div>
<button type="button" id="proverka">Проверка</button>
<button type="button" id="udalit">Удалить элемент</button>

и начать проверку через кнопку, то напишет, что элемент все равно существует.

Отсюда и возникает вопрос. Как реализовать проверку после удаления элемента?

dkmrus 03.05.2016 14:06

Нашел только что в интернете такой вариант:
if($("#SimpleID").length>0) { //можно просто length
    //html элемент существует 
}

Работает о_О
Тема закрыта. Хотя можете предложить вариант получше, если хотите ^_^

yazonnile 03.05.2016 20:17

if($("#SimpleID").length) { //можно просто length
    //html элемент существует
}

рони 03.05.2016 20:54

:-?
if(document.getElementById("SimpleID"))

dkmrus 03.05.2016 21:51

Цитата:

Сообщение от рони (Сообщение 415549)
:-?
if(document.getElementById("SimpleID"))

Вау, мне ваш вариант больше нравится. А в чем такое сильное различие if ($("#div_name")) от if(document.getElementById("SimpleID"))?
То же самое, вроде, но один работает нормально, а другой нет.

рони 03.05.2016 21:59

Цитата:

Сообщение от dkmrus
$("#div_name")

это обьект jquery -- обьект всегда true --
Цитата:

Сообщение от dkmrus
document.getElementById("SimpleID")

это либо элемент, либо null -- элемент в условии будет true, а null даст false

dkmrus 03.05.2016 22:00

Спасибо, теперь понятнее стало)))

рони 03.05.2016 22:12

dkmrus,
if(document.getElementById("SimpleID"))

if ( $("#div_name")[0])

обе записи одинаковы по существу!!!
первая быстрее, во второй только отличие не null а undefined в случае отсутствия.


Часовой пояс GMT +3, время: 13:25.