Я использовал последний ответ из этого вопроса, чтобы добавить строки в мой опрос, который я создаю в Symfony, но строка, которую я добавляю, немного длиннее, чем та, что в ответе.
('<div><input type = "text" name = "mytext[]"/><a href = "#" class = "delete">Delete</a></div>')
Мой выглядит так (с веточкой, там не обязательно все понимать, важна только строчка <div><a href = "#" <class = "delete">Delete</a></div>'
внизу):
'<div class = "ul-div"><ul class = "lst-none">\n' +
' <li>\n' +
' {% for Field in lineArray %}\n' +
' <div class = "{% if loop.first %}lineFieldFirst{% else %}lineField{% endif %}">\n' +
' {% if Field.getType() == "choice" %}\n' +
' <select name = "field_choice_{{ Field.getId() }}[]" id = "field_choice_{{ Field.getId() }}">\n' +
' {% for Fieldvalue in Field.getFieldvaluesBySO() %}\n' +
' <option value = "{{ Fieldvalue.getValue() }}">{{ Fieldvalue.getTranslationName(app.request.getLocale()) }}</option>\n' +
' {% endfor %}\n' +
' </select>\n' +
' {% elseif Field.getType() == "checkbox" %}\n' +
' <label for = "field_checkbox_{{ Field.getId() }}">{{ Field.getTranslationName(app.request.getLocale()) }}</label>\n' +
' <input type = "checkbox" id = "field_checkbox_{{ Field.getId() }}" name = "field_checkbox_{{ Field.getId() }}[]">\n' +
' {% elseif Field.getType() == "date" %}\n' +
' <label for = "field_date_{{ Field.getId() }}">{{ Field.getTranslationName(app.request.getLocale()) }}</label>\n' +
' <input type = "text" class = "datepicker" id = "field_date_{{ Field.getId() }}" name = "field_date_{{ Field.getId() }}[]">\n' +
' {% elseif Field.getType() == "number" %}\n' +
' <input type = "number" id = "field_number_{{ Field.getId() }}" name = "field_number_{{ Field.getId() }}[]" min = "0" value = "0" required>\n' +
' {% elseif Field.getType() == "text" %}\n' +
' <label for = "field_text_{{ Field.getId() }}">{{ Field.getTranslationName(app.request.getLocale()) }}</label>\n' +
' <input type = "text" id = "field_text_{{ Field.getId() }}" name = "field_text_{{ Field.getId() }}[]">\n' +
' {% endif %}\n' +
' </div>\n' +
' {% endfor %}\n' +
' <div><a href = "#" <class = "delete">Delete</a></div>' +
' </li>\n' +
'</ul></div>'
Очевидно, что функция
$(wrapper).on("click", ".delete", function(e) {
e.preventDefault();
$(this).parent('div').remove();
x--;
})
больше не работает, потому что он удаляет только div вокруг тегов <a>, но даже когда я:
parent('div.ul-div')
parent('ul')
parent('div').parent('div')
Кнопка не удаляет всю строку! Что я здесь делаю неправильно?
попробуйте с `$(this).closest('div').remove();`
самые близкие работы, спасибо :)
Я не знаю о Twig, поэтому, если это не часть Twig, у вас, кажется, есть опечатка в вашем <div><a href = "#" <class = "delete">Delete</a></div>
перед словом class
есть знак <
, который вы должны удалить.
Кроме того, попробуйте использовать closest()
вместо parent()
, так как последний перемещается только на один уровень вверх. closest()
будет соответствовать первому элементу, независимо от того, на сколько уровней выше, так что вы даже можете удалить <div class = "ul-div">
вместе с ним.
Рассмотрите возможность голосования, чтобы закрыть вопросы такого типа в следующий раз, поскольку они считаются не относящимися к теме, поскольку проблема была вызвана опечаткой.
это
<
здесь опечатка<class = "..
?