2009-09-02 115 views
0

我想從無序列表中使用兩個元素的id屬性作爲選擇器的一部分來獲取li項目。從無序列表中使用ul和li選擇li的ID

這是我如何使它工作使用UL CSS類的例子:

var listItem = $('ul.selectedItems li#' + opt.list[i].ID); 

我試着用下面的辦法,沒有運氣:

var listItem = $("#" + opt.name).childs.find("#" + opt.list[i].ID) 

回答

1

您應該能夠做這樣的事情:

var listItem = $('#' + opt.name + ' > li#' + opt.list[i].ID); 

應該選擇li元素是chil第一個。請參閱jQuery Selectors: Parent/Child

+0

我試過這種方式沒有任何運氣,但$('#'+ opt.name +'> li [id $ ='+ opt.list [i] .ID +']')訣竅。謝謝! – 2009-09-02 21:04:17

4

當您使用ID時,不應該有任何複雜的選擇器/查找需要。 元素ID應該是整個文檔唯一的,所以尋找一個元素很簡單,只要

var listItem = $("#" + opt.list[i].ID); 

如果不工作,我建議修復你的ID,以便它們是唯一的,而不是解決該問題與一個不必要的複雜CSS選擇器。

+0

+1 - 如果你想要黑體字,我會嘗試給你+2「元素ID應該是唯一的」 – kdgregory 2009-09-02 19:37:39

+0

在完美的世界裏,你不會在別人身上工作代碼:你是對的。但是,我正在使用無序列表來模擬服務器端組合框的代碼。列表元素是從數據源中產生的,因此當兩個服務器控件具有相同的數據源時,ul輸出總是相同的。 我可以控制ul id,但不能控制它的li元素。由於選擇應該獨立控制,我需要能夠使用這個複雜的選擇器。 – 2009-09-02 20:38:48