jQuery Стоп дублировать приложение

0

Что я пытаюсь сделать здесь, у меня есть 1 поле выбора и один вход.

В поле выбора есть 3 варианта со значениями 1,2 и 3, а вход - в div с идентификатором INPUT.

Я хочу здесь, когда я выбираю параметры со значением 3, чтобы удалить весь тег div с идентификатором INPUT, а затем, когда я снова нажимаю пример на 1 или 2, тег DIV добавится снова. Но когда я нажимаю 1 или 2, тег div добавляется снова и снова.

Есть ли возможность проверить, существует ли тег div и не добавлять.

Вот мой jQuery:

$('select').change(function(){
            var val = $(this).val();
                if(val == '3'){
                    $('#INPUT').remove();
                    }

                if(val !== '3'){
                $('.valuta').before('<div id="INPUT"><input type="text"  class="price"></div>');

                    }
                });

Любая помощь будет оценена. Благодарю.

  • 0
    Я не видел ваш код и html, поэтому не знаю, что уместно, но я решил связать вас с hide (), что также сработает - api.jquery.com/hide
  • 0
    Я думал о том, чтобы спрятаться с функцией jQuery переключателя слайдов, но мне нужно удалить. Спасибо за предложение

2 ответа

3

Да, это возможно. Измените это:

if(val !== '3'){

к этому:

if(val != '3' && $("#INPUT").size() == 0){

Таким образом, мы спрашиваем, есть ли еще div с id = INPUT, если его нет, тогда мы добавим его.

ура

  • 0
    Спасибо Эдгар. Этот тоже работает. Я новичок в JQuery.
  • 0
    Кстати, мы должны использовать здесь: if (val! = '3' &&! $ ('# INPUT'). Size ()> 0).
Показать ещё 3 комментария
2

Проверьте, существует ли элемент с идентификатором INPUT перед добавлением нового

if (val != '3' && !$('#INPUT').length) {
    $('.valuta').before('<div id="INPUT"><input type="text"  class="price"></div>');
}

Демо: скрипка


Также вы можете точно настроить условие if потому что если значение не равно 3, вы хотите иметь поле ввода, поэтому нет необходимости в втором, если условие просто использует блок else в первом условии

$('select').change(function () {
    var val = $(this).val();
    if (val == '3') {
        $('#INPUT').remove();
    } else if (!$('#INPUT').length) {
        $('.valuta').before('<div id="INPUT"><input type="text"  class="price"></div>');
    }
})

Демо: скрипка

  • 0
    Спасибо тебе, Арын. Это прекрасно работает. Я получил эту длину сейчас.
  • 0
    Отличная работа, ребята.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню