2014-10-26 27 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

您可以簡單地使用類選擇器來構建所需的選擇器。沒有必要遍歷所有li元素,並檢查其類選擇的所有腦幹:

$('.selected'); 

以除去具有錨李如選自:

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

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

當刪除按鈕被點擊,我需要收集所有選定文件的名稱,並一起刪除所有選定的文件。這個解決方案如何使用?它似乎只能一次刪除一個文件。 – 2014-10-26 17:30:03

+0

@YiyuanLee:你是說李元素?在這種情況下,您需要遍歷li並刪除它們:'$('。selected')。parent()。remove()' – 2014-10-26 17:32:15

+0

是的。這是否刪除了「已選擇」的ul中的所有li,或只是第一個? – 2014-10-26 17:34:18