Как сохранить только первый элемент из класса при клонировании с помощью jquery

#javascript #jquery

#язык JavaScript #jquery

Вопрос:

У каждого из моих дивов есть атрибуты класса с именем remove , у first класса есть id: remove_item то second remove_item_1 , то third remove_item_2 , то и т. Д.

Моя проблема в том, что я хочу клонировать только первый с идентификатором remove_item и удалить все остальные из клона.

Если я это сделаю clone.find('.remove'); , я смогу собрать все элементы с помощью класса remove, но оттуда я как бы теряюсь в том, как это сделать.

Кто-нибудь может помочь ?

Спасибо.

Комментарии:

1. Пожалуйста, опубликуйте соответствующий код; неясно, о чем вы спрашиваете.

2. Думаю, я понимаю, но не могли бы вы предоставить код, который вы используете в данный момент?

3. Клонирование элемента с идентификатором приведет к тому, что у вас будет два элемента с одинаковым идентификатором, и это будет недопустимый html.

4. вы имеете в виду удалить первый с помощью class .remove? потому что, если вы хотите удалить div с идентификатором #remove_item, вы можете просто выбрать его и удалить вручную

5. @YESSINE нет, у меня есть форма ввода, я клонирую всю форму ввода, но в этой форме ввода у меня есть ввод, который имеет несколько вариантов ( я могу добавлять и удалять их), поэтому при клонировании всего ввода я хочу удалить ранее добавленный вариант для этого ввода и просто сохранить исходный, чтобы он имел только идентификатор remove_item

Ответ №1:

Вы можете сохранить первый div, добавив :первый.

 clone.find('.remove:first');  

Ответ №2:

Я думаю, я понял, что ты имеешь в виду

вот пример того, как выбрать первый элемент клонированного div:

допустим, у вас есть

 lt;ul id="list"gt;  lt;div id="clone"gt;  lt;li class="remove remove1"gt;Remove 1 lt;/ligt;  lt;li class="remove remove2"gt;Remove 2lt;/ligt;  lt;li class="remove remove3"gt;Remove 3lt;/ligt;  lt;/divgt;  lt;/ulgt;  

Сценарий для клонирования списка и удаления первого дочернего элемента клона выглядит следующим образом :

 lt;scriptgt;  let clone = $('#clone').clone().appendTo('#list');  clone.children().first().remove();  lt;/scriptgt;  

или вы можете выбрать первый из них по выбору класса, как упоминал @Manashree Shah следующим образом:

 clone.find('.remove:first');  

В коде используется jQuery, вы можете добавить это перед сценарием, если вы еще не добавили его :

 lt;script src="https://code.jquery.com/jquery-3.6.0.min.js"gt;lt;/scriptgt;