Подтвердить что ты не робот

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

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

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

$('#data_1')

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

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

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

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

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

Спасибо.

4b9b3361

Ответ 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 состояние.