有一個潛在的無限下拉集合,給他們所有相同的類,需要能夠訪問,循環和收集所有下拉選項上的選定值,無論有多少可能。最終形式應該是類似於5,6,7,6,4,2,3,4,3,4作爲從所有下拉列表中選擇值的逗號分隔列表。如何使用JQuery訪問並遍歷特定類的所有下拉列表?
0
A
回答
1
var ids = $("select.classname > option:selected").map(function(n, i) {
return $(n).val();
}).join(",");
爲了解釋那是什麼做的:
- 首先,它選擇了給定的下拉列表中的所有選擇的選項(通過「類名」標識);
- 它將每個選定的選項傳遞給回調函數;
- 該回調函數返回所選選項的值;
- 因爲您在所選選項的數組上調用了map,所以您現在使用
map()
方法獲得了一組值; join()
函數將該數組轉換爲逗號分隔列表。
例如:
<select class="classname">
<option value="1">One</option>
<option value="2" selected>Two</option>
<option value="3" selected>Three</option>
</select>
<select class="classname">
<option value="4">Four</option>
<option value="5" selected>Five</option>
</select>
首先使用$()
構造的選擇的選項(2,3和5),映射屬性的值成{2,3,5}
陣列,然後將它們加入到jQuery對象用逗號分隔的字符串"2,3,5"
。
1
似乎cletus提出的答案有兩個問題需要解決我的jQuery版本(1.6.2)。下面的代碼對我來說是正確的,並且在針對cletus'post中的示例HTML使用時警告「3,5」。請注意,它發現最後選定的選項,而不是都從第一個HTML選擇塊中選擇的選項。
var ids = $("select.classname > option:selected").map(function(n, i) { return $(i).val() }).toArray().join(",");
alert(ids);
首先,它在地圖函數回調中使用了錯誤的參數。我需要改變Ñ到我:return $(n).val()
VS return $(i).val()
其次,它返回該所需要的陣列的方法「加入」之前被轉換成一個陣列,可以使用一個jQuery對象:.toArray().join(",")
一旦這兩個小的修改,cletus的答案在jQuery 1.6.2中完美地爲我工作
相關問題
- 1. 訪問特定的下拉列表
- 2. jQuery遍歷表並選擇下拉列表
- 3. 所有具有特定類的下拉列表中的jQuery火災事件
- 4. 遍歷訪問表
- 5. Python Pandas遍歷行並訪問列名
- 6. 如何遍歷JSON元素列表並使用webdriverio訪問其屬性?
- 7. Jquery遍歷列表
- 8. 遍歷表列-jQuery
- 9. JQuery遍歷表列
- 10. 如何遍歷列中的所有行
- 11. 使用jQuery循環遍歷所有LI's
- 12. 循環遍歷選定的用戶並動態填充下拉列表
- 13. 循環遍歷一列,並拉出特定單元格
- 14. 遍歷數據表中的特定列
- 15. Python的 - 遍歷所有類
- 16. SQL循環遍歷所有表,並從特定列中獲取最大值
- 17. 如何獲得具有特定類別的列號並使用它遍歷表格
- 18. 遍歷類列表
- 19. 如何使網格列作爲使用jQuery的所有行的下拉列表
- 20. 如何使用Jquery獲取特定Id的所有選定下拉值
- 21. 如何使用jQuery訪問特定表單和特定類型的元素
- 22. jquery循環遍歷列表並替換
- 23. 使用jQuery遍歷列
- 24. 的jQuery遍歷列表
- 25. 如何使用QDirIterator只遍歷特定類型的文件
- 26. 使用jquery遍歷列表元素
- 27. 使用jQuery遍歷子列表
- 28. 通過遍歷列表使用jQuery
- 29. 用jquery遍歷父列表項列表
- 30. 遍歷所有類屬性
你能解釋一下這裏發生了什麼嗎?怎麼了在$()裏面的synatx?我將循環jQuery文檔中的.map文件...什麼是n和i? – BigOmega 2009-09-22 02:02:11
woa - 那太瘋狂了......我仍然很難接受一件事:什麼時候該函數被傳入.map()實際調用?以及它被稱爲多少次?否則這是有道理的,這很漂亮。 – BigOmega 2009-09-22 02:12:01
傳遞給map()的函數是一個回調函數。每匹配元素被調用一次。請參閱http://docs.jquery.com/Traversing/map – cletus 2009-09-22 02:17:32