JQuery - проверить, существует ли элемент DOM

Я пытаюсь добавить некоторые элементы формы динамически через Ajax с помощью jQuery. Я хочу убедиться, что я не создаю один и тот же элемент дважды, поэтому хочу добавить его только в том случае, если он еще не добавлен в DOM.

Все мои элементы имеют уникальный идентификатор CSS, например:

$('#data_1')

Я использую следующее, чтобы проверить, существует ли элемент:

if ($('some_element').length == 0) {
    //Add it to the dom
}

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

Как также проверить элементы, которые были динамически созданы после загрузки страницы?

Любые советы приветствуются.

Спасибо.

Ответ 1

Это должно работать для всех элементов независимо от того, когда они сгенерированы.

if($('some_element').length == 0) {
}

напишите свой код в функциях обратного вызова ajax, и он должен работать нормально.

Ответ 2

Просто чтобы подтвердить, что вы правильно выбираете элемент. Попробуйте этот

if ($('#some_element').length == 0) {
    //Add it to the dom
}

Ответ 3

Угадайте, что вы забыли добавить этот предмет в DOM.

Отметьте ЗДЕСЬ.

Ответ 4

если доступно ID - вы можете использовать getElementById()

var element =  document.getElementById('elementId');
  if (typeof(element) != 'undefined' && element != null)
  { 
     // exists.
  }

ИЛИ Попробуйте с JQuery -

if ($(document).find(yourElement).length == 0) 
{ 
 // -- Not Exist
}

Ответ 5

(()=> {
    var elem = document.querySelector('.elem');  
    (
        (elem) ? 
        console.log(elem+' was found.') :
        console.log('not found')
    )
})();

Если он существует, он выплескивает указанный элемент как объект DOM. С помощью JQuery $('.elem') он сообщает вам, что это объект, если он найден, но не тот.

Ответ 6

В этом случае вы можете проверить, существует ли элемент в текущей DOM

если вы хотите проверить, существует ли элемент в дереве DOM (прикреплен к DOM), вы можете использовать:

var data = $('#data_1'); 
if(jQuery.contains(document.documentElement, data[0])){
    // #data_1 element attached to DOM
} else {
    // is not attached to DOM
}

Ответ 7

if ($('#some_element').length === 0) {
    //If exists then do manipulations
}

Ответ 8

Нет, чтобы сравнить что-либо, вы можете просто проверить, что этим...,.

if(document.getElementById("url")){ alert('exit');}
if($("#url")){alert('exist');}

вы также можете использовать функцию html(), а также

if($("#url).html()){alert('exist');}

Ответ 9

Этот вопрос касается того, существует ли элемент, и все ответы проверяются, если он не существует:) Незначительная разница, но стоит упомянуть.

На основе документации jQuery рекомендуемый способ проверить наличие

if ($( "#myDiv" ).length) {
    // element exists
}

Если вы хотите проверить отсутствующий элемент, вы можете использовать:

if (!$( "#myDiv" ).length) {
    // element doesn't exist
}

или

if (0 === $( "#myDiv" ).length) {
    // element doesn't exist
}

Обратите внимание, что во втором варианте я использовал ===, который немного быстрее, чем ==, и положил 0 слева как Yoda состояние.