2012-02-14 25 views
0
<select onchange="showResult(this.value)"> 
    <option value="AAA">London</option> 
    <option value="BBB">France</option> 
    <option value="ccc">Berlin</option> 
    <option value="DDD">Rome</option> 
</select> 

在上述代碼,每個<option>的值已經被作爲參數傳遞showResult()如何選擇元素的含量傳遞Javascript函數

我的問題是如何通過選項元素的含量(i.e.'London」,‘法國’,‘柏林’,‘羅馬’),如showResult()參數。

非常感謝

+0

你應該選擇一個答案,並接受它 – fcalderan 2014-03-07 08:33:05

回答

1

[yourselect].options[0].text回報「倫敦」,[yourselect].options[1].text法國等,所以,換句話說,對於options的每個選項-nodeList財產text包含的內容。

+0

燁,和這裏的官方參考:http://www.w3schools.com/jsref/prop_option_text.asp – 2012-02-14 09:36:18

0

嘗試this.options [this.selectedIndex] .text,因爲我沒有使用jQuery而做了這一段。

0
function showResult() 
{ 
    var value = this.options[this.selectedIndex].value; 
    var content = this.options[this.selectedIndex].text; 
} 
1

寫這段代碼

<select onchange="showResult(this.options[this.selectedIndex])"> 
    <option value="AAA">London</option> 
    <option value="BBB">France</option> 
    <option value="ccc">Berlin</option> 
    <option value="DDD">Rome</option> 
</select> 

所以你將整個選擇的選項節點傳遞到showResult功能您將可以訪問數值和文本

function showResult(opt) { 
    alert(opt.value);  /* e.g. DDD */ 
    alert(opt.text);  /* e.g. Rome */ 
} 

例小提琴:http://jsfiddle.net/xypGa/

0

不是傳遞this.value(所述select元件的value屬性),通過this(所述select元件),即onchange="showResult(this)"以及使用代碼等

function showResult(selectElem) { 
    var optionText = selectElem.options[selectElem.selectedIndex].text; 
    alert(optionText); // replace by real code that uses the string 
} 

另一個優點的現在該函數可以訪問整個元素,因此如果以後需要使用value屬性,則在函數中,您可以在不修改函數調用的情況下執行此操作。

0
<select onchange="showResult(this.options[this.selectedIndex].text)"> 
    <option value="AAA">London</option> 
    <option value="BBB">France</option> 
    <option value="ccc">Berlin</option> 
    <option value="DDD">Rome</option> 
</select> 
相關問題