2011-06-23 61 views
34

我有一個包含某些值的選擇框。我如何獲得選定的選項文本,而不是值?使用jQuery獲取所選選項的文本

<select name="options[2]" id="select_2"> 
    <option value="">-- Please Select --</option> 
    <option value="6" price="0">100</option> 
    <option value="7" price="0">125</option> 
    <option value="8" price="0">150</option> 
    <option value="9" price="0">175</option> 
    <option value="10" price="0">200</option> 
    <option value="3" price="0">25</option> 
    <option value="4" price="0">50</option> 
    <option value="5" price="0">75</option> 
</select> 

我嘗試這樣做:

$j(document).ready(function(){ 
    $j("select#select_2").change(function(){ 
     val = $j("select#select_2:selected").text(); 
     alert(val); 
    }); 
}); 

但它回來與undefined

回答

56

關閉,您可以使用

$('#select_2 option:selected').html() 
+1

將$( '#select_2:選擇')。HTML()也適用? –

+0

@JoseFaeti顯然,是的:http://jsfiddle.net/jomanlk/kcWQw/7/ – JohnP

+0

請記住$('#select_2')。find('option:selected')。html()會更高效)。 – Archangel

5

您的選擇更改爲

val = j$("#select_2 option:selected").text(); 

你選擇<select>代替<option>

0

其實你可以把值=到文字然後做

$j(document).ready(function(){ 
    $j("select#select_2").change(function(){ 
     val = $j("#select_2 option:selected").html(); 
     alert(val); 
    }); 
}); 

或者什麼,我做了一個類似的案例是

<select name="options[2]" id="select_2" onChange="JavascriptMethod()"> 
    with you're options here 
</select> 

隨着你應該有一個未定義的第二個選項。 給我的反饋,如果它的工作:)

帕特里克

0

而且美國可以考慮這個

$('#select_2').find('option:selected').text(); 

,雖然我不知道這可能會快一點的解決方案。

12
$(document).ready(function() { 
    $('select#select_2').change(function() { 
     var selectedText = $(this).find('option:selected').text(); 
     alert(selectedText); 
    }); 
}); 

Fiddle

+0

這是最優雅的一個...特別是當你將select作爲一個對象時 – MYNE

相關問題