我在网页中有以下代码,我必须从第二个
select
中检索所有option
文本和属性以将它们放入变量中。
我试过这样但它不起作用,没有创建元素数组,我哪里错了?
网页:
<select name="type" id="search-type">
<option value="value0">Title0</option>
<option value="value1">Title1</option>
</select>
...
<select onchange="location = this.options[this.selectedIndex].value;">
<option value="value0">Titleo</option>
<option value="value1">Title1</option>
<option value="value2">Title2</option>
<option value="value3">Title3</option>
</select>
代码:
const eps = $('select')
.find('option')
.each((_, op) => ({
ep: $(op).text(),
url: $(op).attr('value'),
select: 1,
}))
.slice(2);
console.log(eps);
我认为, .each() 方法不返回任何东西,所以你的
eps
变量没有被分配一个对象数组。你可以使用 jQuery 尝试这样的事情:
const options = $('select:eq(1) option').map(function() {
return {
text: $(this).text(),
value: $(this).val()
};
}).get();
console.log(options);
或者使用原生 JavaScript:
const select = document.getElementsByTagName('select')[1];
const options = Array.from(select.options).slice(1).map(function(option) {
return {
text: option.text,
value: option.value
};
});
console.log(options);