2014-10-26 2 views
0

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

<ul class="nav"> 
    <li><a>File one</a></li> 
    <li><a>File two</a></li> 
    <li><a>File three</a></li> 
    <li><a>File four</a></li> 
</ul> 

Я добавил скрипт JQuery, который изменяет добавляет класс стиля к литию (т.е. выделяет элемент) при щелчке:

var lis = $('.nav li a').click(function(e){ 
    if(!e.ctrlKey) { 
     lis.removeClass("selected");  
    } 
    $(this).toggleClass("selected");  
}); 

Теперь я хочу реализовать функцию удаления, которая должна решить, какие файлы выбраны, но я не уверен, что это лучший способ сделать это.

Самый простой способ - это прокрутить записи li и проверить, какие элементы стилированы в классе «selected».

Этот метод целесообразен? То есть, рекомендуется использовать классы в качестве флагов?

ответ

2

Вы можете просто использовать селектор классов для создания необходимого селектора. нет необходимости перебирать все Lī элемент и проверить класс выбранного существования:

$('.selected'); 

удалить Li, имеющий якоря, как выбрано:

$('.selected').parent().remove() 

или

$('li:has(.selected)').remove() 
+0

Когда кнопка удаления , мне нужно будет собрать имена всех выбранных файлов и удалить все выбранные файлы вместе. Как можно использовать это решение? Кажется, удастся только удалить файл за раз. –

+0

@YiyuanLee: вы имеете в виду элементы li? в этом случае вам нужно перейти к li и удалить их: '$ ('. selected'). parent(). remove()' –

+0

Yup. Удаляет ли это все ли в ul, которое выбрано или только первое? –

Смежные вопросы