繁体   English   中英

将 select 选项的值设置为 select JSON 数据

[英]Set value on select options to select JSON data

我正在创建一个基于 JSON 的 select,我使用 API。 基于该 select,当我选择另一个选项时,我希望更改一些数据(文本和图像 src)。

我得到了 select 并完成了选项。 每个选项都是一个名称,我使用 forEach 完成了它。 我的问题是设置值,以便我可以使用它来更改其他数据。 在我看来,最简单的解决方案是将值设置为对象索引,因此当我选择第一个选项时,我得到 0 并且可以获得第一个 JSON object。 我不确定这是否是最好的方法。

这是我的代码减少到只有 forEach:

 <select name="select" id="selector"> </select>
  data_json.show.forEach((element) => {
    document.getElementById('selector').innerHTML +=
    `<option value="">${element.name}</option>`;
  });

(这个值就是我想和每个json数据的索引一样)

我对我想要得到的东西的想法:

  <select name="select" id="selector">
    <option value="0">Name_01</option>
    <option value="1">Name_02</option>
    <option value="2">Name_03</option>
  </select>

所以我可以使用这样的值:

  let titulos = document.getElementById("titulos");

  selectVal.onchange = function() {
        let actualVal = selectVal.options[selectVal.selectedIndex].value;
        titulos.innerHTML = "Títulos:" + " " + data_json.show[actualVal].image;;
    };
  <p id="titulos">Títulos:</p>

希望有意义

您将它们全部设置为空值。 您可以使用数组索引为它们各自赋予不同的值。

  data_json.show.forEach((element, index) => {
    document.getElementById('selector').innerHTML +=
    `<option value="${index+1}">${element.name}</option>`;
  });

顺便说一句,您可以将selectVal.options[selectVal.selectedIndex].value简化为selectVal.value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM