.val() 返回值 ATTRIBUTE 不是 <option> 的内容
.val() returning value ATTRIBUTE not content of <option>
我目前正在将自己的 jquery 代码添加到由第三方构建和托管的网站(因此我无法编辑 HTML 以删除属性等)。我正在尝试 return 下拉框当前 selected 项目的值(例如这个从 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();
每当我 select 从下拉列表中选择一个选项时,returned 值是 234 而不是 100、235 而不是 200,等等。
我不知道如何获得它 return option 元素的内容而不是 value 属性的值?
这是预期的行为 -- select 的 .val()
是 selected 项的值。你应该使用
var dropDowns = $( "#ctl00_cpMainBody_OptionCalc_Quantities option:selected" ).text();
$( "#ctl00_cpMainBody_OptionCalc_Quantities option:selected" ).text()
这是预期的行为。要改为检索它们的内部文本,您需要获取所选选项并获取其文本,如下所示:
function displayVals() {
var dropDowns = $( "#ctl00_cpMainBody_OptionCalc_Quantities option:selected" ).text();
$( "#displaying" ).html( "<strong>Value:</strong> " + dropDowns);
}
如果你想获取文本值,你可以这样做
$("#ctl00_cpMainBody_OptionCalc_Quantities option:selected").text();
如果您在没有 :selected
的情况下执行 $("#ctl00_cpMainBody_OptionCalc_Quantities").text();
,您将获得每个选项的列表,例如
100
200
300
400
500
我目前正在将自己的 jquery 代码添加到由第三方构建和托管的网站(因此我无法编辑 HTML 以删除属性等)。我正在尝试 return 下拉框当前 selected 项目的值(例如这个从 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();
每当我 select 从下拉列表中选择一个选项时,returned 值是 234 而不是 100、235 而不是 200,等等。
我不知道如何获得它 return option 元素的内容而不是 value 属性的值?
这是预期的行为 -- select 的 .val()
是 selected 项的值。你应该使用
var dropDowns = $( "#ctl00_cpMainBody_OptionCalc_Quantities option:selected" ).text();
$( "#ctl00_cpMainBody_OptionCalc_Quantities option:selected" ).text()
这是预期的行为。要改为检索它们的内部文本,您需要获取所选选项并获取其文本,如下所示:
function displayVals() {
var dropDowns = $( "#ctl00_cpMainBody_OptionCalc_Quantities option:selected" ).text();
$( "#displaying" ).html( "<strong>Value:</strong> " + dropDowns);
}
如果你想获取文本值,你可以这样做
$("#ctl00_cpMainBody_OptionCalc_Quantities option:selected").text();
如果您在没有 :selected
的情况下执行 $("#ctl00_cpMainBody_OptionCalc_Quantities").text();
,您将获得每个选项的列表,例如
100
200
300
400
500