如何解决使用js定位选项列表的当前值,然后将该值添加到对象? 定义事件监听器附加监听器
HTML
<div class="options-container">
<select id="all-options">
<option value="0" selected>NY</option>
<option value="1">LA</option>
<option value="2">Toronto</option>
<option value="3">Paris</option>
</select>
</div>
JS
let selectedOption = {};
let allOptions = document.getElementById('all-options');
let optionValue = allOptions.options[all-options.selectedindex].value;
if (optionValue == "0") {
selectedOption.value === "0"
} else if (optionValue === "1") {
selectedOption.value === "1"
} else if (optionValue === "2") {
selectedOption.value === "2"
} else if (optionValue === "3") {
selectedOption.value === "3"
};
我正在尝试使用JS定位HTML文件中选项列表元素的当前值,以便可以将该值添加到selectedOption对象。该值可以添加为字符串或数字对象。
解决方法
定义事件监听器
您将要在<select>
中定义一个事件监听器。例如:
function onSelectItem(evt)
{
let value = evt.target.selectedOptions[0].value;
let text = evt.target.selectedOptions[0].text;
// Assign it how you want here:
selectedOption = value;
}
您不能真正“推”到对象。如果您要使用数组,请将所选选项更改为数组([]
)并执行selectedOption.push(value)
。但是,如果您想要一个有用的对象,则可以将其分配给evt.target.selectedOptions[0]
。
附加监听器
之后,您可以将其附加到html中,并通过默认的event
变量传递事件对象:
<select id="all-options" onchange="onSelectItem(event)">
<option value="0">NY</option>
<option value="1">LA</option>
<option value="2">Toronto</option>
<option value="3">Paris</option>
</select>
页面加载时或更多Javascript(通过将onload
中的"init()"
属性设置为<body>
)
function init()
{
let menu = document.getElementById('all-options');
menu.addEventListener('change',onSelectItem);
// Since it seems that you also want a default selected value when the
// page loads,you should probably also initialize your `selectedOption` to `0`.
selectedOption = menu.selectedOptions[0].value;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。