Cheeriojs 从选择/选项中检索所有文本和属性

问题描述 投票:0回答:1

我在网页中有以下代码,我必须从第二个

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);
javascript html node.js dom cheerio
1个回答
0
投票

我认为, .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);
© www.soinside.com 2019 - 2024. All rights reserved.