JS jQuery on change获取选择选项标签的innerHTML

Posted

技术标签:

【中文标题】JS jQuery on change获取选择选项标签的innerHTML【英文标题】:JS jQuery on change get innerHTML of select option tag 【发布时间】:2020-04-22 08:25:50 【问题描述】:

我知道如何在选择下拉列表更改时获取所选选项标签的“值”。但是如何将关联的“文本”(即内部 html)放入 JS 变量“country_name”?

<select name="country" class="country">
    <option value="please-select" disabled="disabled" selected="selected">select country</option>
    <option value="DE">Germany</option>
    <option value="ES">Spain</option>
    <option value="FR">France</option>
    <option value="IT">Italy</option>
</select>

<script src="js/jquery-3.4.1.min.js"></script>

<script>
$('select.country').on('change',function()
    var country_code = $(this).val();
    var country_name = 'Selected Country Name';
    alert(country_code+" - "+country_name);
);
</script>

例如第二个选项所需的警报输出:

ES - 西班牙

【问题讨论】:

【参考方案1】:

您只需要构建一个相对于下拉列表的选择器,通过 jQuery 的 :selected 伪选择器进入其 option 子级并过滤到选定的子级:

var country_name = $(this).children(':selected').text();

【讨论】:

如果我添加它,它会给我输出:“ES - [object Object]” 抱歉,写的比较匆忙;见编辑 - 你需要 .text() 方法。【参考方案2】:

要获取选择字段的选定选项的选定文本,我会执行以下操作

$("select.country").change(function()
    var selectedCountry = $(this).children("option:selected");
    var country_code = selectedCountry.val();
    var country_name = selectedCountry.text();
    alert(country_code+" - "+country_name);
);

【讨论】:

【参考方案3】:

只需在你的javascript中添加这个

$('select.country').on('change',function()
var country_code = $(this).val();
var country_name = ( $(this).find(":selected").text() )

alert(country_code+" - "+country_name);
);

【讨论】:

以上是关于JS jQuery on change获取选择选项标签的innerHTML的主要内容,如果未能解决你的问题,请参考以下文章

jquery radio改变时没有触发on的change事件,是为啥

如何使用带有复选框的jQuery change()?

HTML Helpers DropDownList On change Jquery Event filter another DropDownList?附上 MVC 示例

jquery on('change'......不能在多个标签中工作[重复]

Bootstrap-select on click 获取点击值

如何将图表与 js 和 jQuery 集成?