2016-12-23 190 views
-2

我有多個選擇頁面上name =「categories」,我想從多個下拉列表中獲取所有選項文本,並希望存儲在數組中。 我谷歌,但大多數的例子來與jQuery和基於ID。如何獲得多個選擇使用jQuery選擇名稱的所有選項

+1

提供你所嘗試過的。 – ScanQR

+1

以'$('select [name =「categories」]選項開始)。map(.....)' – Satpal

+0

我得到的這個例子更接近我的解決方案,但它又是基於Id的。 jsfiddle.net/Mer38/ –

回答

1

從您的代碼,提供一個name選擇和嘗試如下訪問它,

$(document).ready(function() { 
 

 
    var optionValues = []; 
 

 
    $('select[name=sameSelect] option').each(function() { 
 
    optionValues.push($(this).text()); 
 
    }); 
 

 
    $('#result').html(optionValues); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="state" name="sameSelect"> 
 
    <option value="state1">state1</option> 
 
    <option value="state2">state2</option> 
 
    <option value="state3">state3</option> 
 
</select> 
 

 
<p id="result"></p>

+0

誰是downvoter?爲什麼? – ScanQR

+0

我認爲低調投票者沒有正當理由投了票,否則他至少應該留下一條評論。 DownVotes是錯誤的答案,如果它不是最好的答案(但正確的答案),我們不應該downVote它。 –

+0

@ScanQR經過慎重考慮,我找到了一個可能的反對票的原因。提問者要求輸入文本,然後用數值填充陣列。 optionValues.push($(本)的.text());肯定會提高你的答案的質量。 –

0

下面的代碼初始化一個空數組,得到一個選擇匹配的所有內容,然後迭代它們並將它們的內部文本壓入數組中。

var selector = 'select[name="categories"] option'; 
var optionsText = []; 
var context = document.querySelectorAll(selector); 
for (var index in context) { 
    optionsText.push(context[index].innerText); 
} 
//Do something with optionsText 
+0

Lajos Arpad它真的幫助我,謝謝。 –

+0

@MohsinAli歡迎您。你有兩個正確的答案供你選擇,你可以選擇任何一個作爲正確的答案。我相信你應該選擇一個,因爲在那種情況下,你正在幫助未來的人有類似的問題。 –

相關問題