id="city_X"
дублируется на <li>
и <label>
. id
должен быть уникальным в документе, иначе при попытке сделать $('#my_id')
.
у вас будет неопределенное поведение.
<label>
s для элементов ввода формы, а не для отображения текста. Либо не используйте тег, либо <span>
Вот как бы я это сделал:
<ul id="city_list">
<li id='city_7' class="city">
<span class="label">Eureka</span>
- <a href='city.modify.php?id=7&modification_type=edit'>Edit</a>
- <a href='#' class='confirm_delete'>Delete</a>
</li>
<li id='city_8' class="city">
<span class="label">Rolla</span>
- <a href='city.modify.php?id=8&modification_type=edit'>Edit</a>
- <a href='#' class='confirm_delete'>Delete</a>
</li>
<li id='city_10' class="city">
<span class="label">Union</span>
- <a href='city.modify.php?id=10&modification_type=edit'>Edit</a>
- <a href='#' class='confirm_delete'>Delete</a>
</li>
</ul>
Предполагается, что вы хотите удалить при нажатии на ссылку удаления.
// Use event delegation
$('#city_list').bind('click', function(event)
{
$(event.target).closest('.confirm_delete').each(function()
{
// Get ID from city
var $city = $(this).closest('.city');
var id = $city.attr('id').match(/city_(.+)/)[1];
// Do any AJAX request to tell the server to delete the city
$city.remove();
})
})