#jquery
#jquery
Вопрос:
Я настраиваю форму счета. Каждый раз, когда я нажимаю на кнопку, addItem
функция создает <li>
элементы с именем класса element counter
. Добавьте, что в то же время рядом с ним также создается кнопка удаления, которая также содержит ‘элемент счетчик’ в качестве имени класса.
Каждый раз, когда я добавляю элемент, счетчик увеличивается.
Но как мне удалить определенную element counter
строку с помощью кнопки удалить?
var verwijderCounter = 0;
function addItems(){
verwijderCounter ;
$("#description").append("<li class='element" verwijderCounter "'>" $('#formOmschrijving').val() "</li>");
$("#uurprijs").append("<li class='element" verwijderCounter "'>" $('#formUurprijs').val() "</li>");
$("#amount").append("<li class='element" verwijderCounter "'>" $('#formUren').val() "</li>");
$("#removeLine").append('<button type="button" class="btn verwijder element' verwijderCounter '">del</button>');
Комментарии:
1. при нажатии кнопки вы должны вызвать функцию, которая удалит эту конкретную строку. в этой функции также уменьшите счетчик
2. Также кажется, что вы повторяете идентификаторы при каждом добавлении. это неправильная практика, и эти повторяющиеся идентификаторы не будут работать, когда вы попытаетесь использовать их в jquery [они всегда будут ссылаться на первый]. Поэтому используйте class вместо
3. @Alive, чтобы умереть, правильно. ваш дизайн с использованием id кажется неправильным подходом. однако решением может быть поиск заключающего родительского элемента (например, строки таблицы или ul) и удаление его.
Ответ №1:
Когда вы добавляете кнопку удаления, сообщите ей счетчик:
Я не тестировал, но это должно быть примерно так:
$("#removeLine").append('<button id="delete"' verwijderCounter ' type="button" class="btn verwijder element' verwijderCounter '">del</button>');
$( "#delete" verwijderCounter).click(function() {
removeItems(verwijderCounter);
});
А затем удалите все элементы с тем же классом с помощью этого:
function removeItems(counter) {
$( 'element" counter ).remove();
}
И не уменьшайте счетчик, потому что это испортит ваши имена классов!