.val()返回值ATTRIBUTE不是<option>的内容

时间:2015-06-02 21:00:39

标签: jquery html html-select

我目前正在将自己的jquery代码添加到由第三方构建和托管的网站(因此我无法编辑HTML以删除属性等)。我正在尝试返回下拉框中当前所选项的值(例如,这个值从100到500逐步为100),HTML:

<select name="ctl00$cpMainBody$OptionCalc$Quantities" onchange="javascript:setTimeout('__doPostBack(\'ctl00$cpMainBody$OptionCalc$Quantities\',\'\')', 0)" id="ctl00_cpMainBody_OptionCalc_Quantities" class="form-control">
  <option selected="selected" value="234">100</option>
  <option value="235">200</option>
  <option value="236">300</option>
  <option value="237">400</option>
  <option value="238">500</option>
</select>

这是我的jquery:

function displayVals() {
  var dropDowns = $( "#ctl00_cpMainBody_OptionCalc_Quantities" ).val();
  $( "#displaying" ).html( "<strong>Value:</strong> " + dropDowns);
}
$(document).on("change", "select", displayVals);
displayVals();

当我从下拉列表中选择一个选项时,发生的事情是,返回的值是234而不是100,235而不是200,等等。

我迷失了如何让它返回option元素的内容而不是value属性的值?

4 个答案:

答案 0 :(得分:2)

这是预期的行为 - 选择的.val()是所选项目的值。你应该使用

var dropDowns = $( "#ctl00_cpMainBody_OptionCalc_Quantities option:selected" ).text();

答案 1 :(得分:1)

这是预期的行为。要改为检索内部文本,您需要获取所选选项并获取其文本,如下所示:

<span>

答案 2 :(得分:1)

如果你想获得文本值,你可以这样做

$("#ctl00_cpMainBody_OptionCalc_Quantities option:selected").text();

如果您$("#ctl00_cpMainBody_OptionCalc_Quantities").text();没有:selected,则会获得每个选项的列表,例如

100
200
300
400
500

答案 3 :(得分:-1)

user_id