Как я могу прикрепить событие щелчка к этому элементу диапазона, который будет динамическим на каждом элементе создается и что при нажатии на полную строка удаляется?
Проблема заключается ваше предположение, что такое element
есть, а в контексте вашего примера, он более тесно представляет собой list of text, что означает, что вы должны относиться к нему как таковым, и что разрушает любые себя (this
) или parent
или относительная логика типа родства, которая обычно используется для решения проблемы.
В этом случае некоторые из них будут проецировать уникальный идентификатор для каждого элемента, например.
Работы, не рекомендуется
<span id='link_001'>www.sampleurl.com</span>
<span class="delete_icon" onclick="document.getElementById('link_001').remove()"/></br>
Но вы все еще будете иметь затяжной X
значок удаления позже.
Вам нужно либо иметь URL и значок удаления X
как часть того же самого высокого элемента, так что вы можете просто слепо удалите его parent
, или какой-либо уникальный идентификатор, который дает X
информацию о том, какие URL для удаления, а затем также код X
, чтобы удалить себя.
Рекомендуется
Рекомендуемый подход оборачивает каждый URL в неупорядоченном списке (ul
). ul
представлен только в качестве примера, поскольку элементы списка (li
) служат в качестве популярных контейнеров для этих типов задач. Тем не менее, span
или div
должны работать нормально вместо li
, если не требуется ul/li
.
Поскольку X
является частью одного и того же родительского элемента (li
), он может быстро найти его и удалить его, не пытаясь разобрать массив текстовых данных.
<ul>
<li>http://stackoverflow.com <span style="cursor: pointer;" onclick="remove(this)">x</span></li>
<li>http://askubuntu.com <span style="cursor: pointer;" onclick="remove(this)">x</span></li>
</ul>
<script>
function remove(o) {
o.parentElement.remove();
}
</script>
Хотя вопрос конкретно задает вопрос о том, как это сделать с помощью jQuery, приведенные выше примеры JavaScript не предлагают дополнительного кода. При желании вы всегда можете обернуть $(this)
и вызвать onclick="$(this).parent.remove()"
и т.д.
'$ (document) .on ('click', '. Delete_icon', function() {// здесь код})' read on [devent delegision] (http://api.jquery.com/on/) для получения дополнительной информации – guradio
есть ли причина, по которой вы не хотите, чтобы каждый элемент внутри списка? –
@NevilleNazerane нет нет причин. Дело в том, что у меня есть фильтр, чтобы получить эти элементы в массив: var contents = $ ('# screenlist'). Html(). Split (/ \ n | \
/).filter(function(v) { return /\w+/.test(v); }); – VAAA