通常我使用$(“#id”).val()来返回所选选项的值,但这一次它不起作用。 所选标记的id为aioConceptName

html代码

<label for="name">Name</label>
<input type="text" name="name" id="name" />

<label for="aioConceptName">AIO Concept Name</label>
<select id="aioConceptName">
    <option>choose io</option>
    <option>roma</option>
    <option>totti</option>
</select>

当前回答

如果你在事件上下文中,在jQuery中,你可以使用以下方法检索所选的选项元素: $(this).find('option:selected')如下所示:

$('dropdown_selector').change(function() {
    //Use $option (with the "$") to see that the variable is a jQuery object
    var $option = $(this).find('option:selected');
    //Added with the EDIT
    var value = $option.val();//to get content of "value" attrib
    var text = $option.text();//to get <option>Text</option> content
});

Edit

正如possession within所提到的,我的答案只是回答这个问题:如何选择所选的“选项”。

接下来,要获取选项值,使用option.val()。

其他回答

你可以这样调试:

console.log($('#aioConceptName option:selected').val())
$('#aioConceptName option:selected').val();

对于下拉选项,你可能想要这样的东西:

对于选定的文本

var conceptName = $('#aioConceptName').find(":selected").text();

对于所选值

var conceptName = $('#aioConceptName').find(":selected").val();

val()没有做到这一点的原因是,单击一个选项并不会改变下拉列表的值——它只是将:selected属性添加到作为下拉列表子项的selected选项中。

也可以使用jQuery.val()函数来选择元素:

.val()方法主要用于获取表单元素的值 如输入,选择和文本区域。对于选择元素,它 返回null,当没有选择任何选项时,返回一个包含 当至少有一个并且是时,每个所选选项的值 可以选择更多,因为存在多个属性。

$(函数() { $(“#aioConceptName”).on(“change”, function() { $(“#debug”).text($(“#aioConceptName”).val()); }).trigger(“change”); }); <script src=“https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js”></script> <select id=“aioConceptName”> <option>选择io</option> <option>罗马</option> <option>托蒂</option> </select> <div id=“debug”></div>

JQuery:

如果你想要得到选定的选项文本,你可以使用$(select element).text()。 var text = $('#aioConceptName选项:selected').text(); 如果你想要得到选定的选项值,你可以使用$(select element).val()。 var val = $('#aioConceptName选项:selected').val(); 确保在<option>标签中设置value属性,如: <选择id = " aioConceptName " > <option value="">choose io</option> . <选项值=“罗马(值)" >罗马(文本)< /选项> <选项值= "托蒂(值)" >托蒂(文本)< /选项> < /选择>

在这个HTML代码示例中,假设选择了最后一个选项:

Var text会给你totti(text) Var val会给你totti(value)

美元(文档)。(“改变”,“# aioConceptName”功能(){ var val = $('#aioConceptName选项:selected').val(); var text = $('#aioConceptName选项:selected').text(); $ (' .result ')。text("Select Value = " + val); $ (' .result ')。append("<br>Select Text = " + Text); }) < script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js " > < /脚本> <选择id = " aioConceptName " > <选项值= " io(值)“>选择io > < /选项 <选项值=“罗马(值)" >罗马(文本)< /选项> <选项值= "托蒂(值)" >托蒂(文本)< /选项> < /选择> < p class = "结果" > < / p >