JQuery - удалить каждый элемент

0

Используя javascript, мне нужно удалить все соответствующие элементы с одним событием.

Вот мой код

$(document).ready(function(){
      $("#target").blur(function(){
           name = $(this).val();

              for (i = 1; i < name; i++) {
                $("#myspan").clone()
                            .attr({"id":"cloned"})
                            .appendTo("#myspan")
               }
      });

      $("#target").click(function(){
          $("#cloned").remove();
      });
});

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

  • 1
    Идентификаторы должны быть уникальными - селектор захватит только первый
  • 0
    Вместо этого используйте класс.
Теги:

1 ответ

1
Лучший ответ

Вместо этого используйте класс. id должен быть уникальным в документе. классы могут быть на столько объектов, сколько хотите. Поэтому, если вы хотите, чтобы запрос возвращал несколько элементов, запрос не может быть для идентификатора, так как он только когда-либо вернет один элемент. Здесь можно использовать вместо этого имя класса.

$(document).ready(function(){
      $("#target").blur(function(){
           name = $(this).val();

              for (i = 1; i < name; i++) {
                $("#myspan").clone()
                            .addClass("cloned")
                            .removeAttr("id")
                            .appendTo("#myspan")
               }
      });

      $("#target").click(function(){
          $(".cloned").remove();
      });
});

Изменения:

  1. Вызовите .addClass("cloned") чтобы добавить имя желаемого класса
  2. Добавить .removeAttr("id") чтобы удалить дубликат идентификатора после клонирования
  3. Измените запрос на удаление на $(".cloned").remove();

Ещё вопросы

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