Javascript从json填充选择选项
我对这个代码有问题。我必须加载json格式的数据(var data2)并填充select id=“SELEZIONAVERO”中的选项。选择项目取决于我在select name=“Tipo_sistema”中选择的内容。 似乎效果不太好,因为如果我更改第一个选择,在第二个选择中仍保留一些previus选项 提前谢谢Javascript从json填充选择选项,javascript,html,json,Javascript,Html,Json,我对这个代码有问题。我必须加载json格式的数据(var data2)并填充select id=“SELEZIONAVERO”中的选项。选择项目取决于我在select name=“Tipo_sistema”中选择的内容。 似乎效果不太好,因为如果我更改第一个选择,在第二个选择中仍保留一些previus选项 提前谢谢 var数据2={ “西斯特米”:{ “等级等级”:{ “maxL”:110, “maxH”:270, “vetro”:[“Trasparente”、“Trasp satinato”
var数据2={
“西斯特米”:{
“等级等级”:{
“maxL”:110,
“maxH”:270,
“vetro”:[“Trasparente”、“Trasp satinato”、“Stampa Digital”]
},
“最低等级”:{
“maxL”:110,
“maxH”:270,
“vetro”:[“Trasparente”、“Trasp satinato”、“Extrachiaro”]
}
}
}
函数loadLista(){
var select=document.getElementById(“selezionaVetro”);
var opzioni=data2.sistemi[document.getElementsByName(“Tipo_sistema”)[0]。value]。vetro;
对于(var a=0;a
古典风
极小化软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖
选择一个数字
您应该按相反顺序删除前面的选项
for(让i=select.options.length-1;i>=0;i--){
选择.options[i].remove();
}
var数据2={
“西斯特米”:{
“等级等级”:{
“maxL”:110,
“maxH”:270,
“vetro”:[“Trasparente”、“Trasp satinato”、“Stampa Digital”]
},
“最低等级”:{
“maxL”:110,
“maxH”:270,
“vetro”:[“Trasparente”、“Trasp satinato”、“Extrachiaro”]
}
}
}
triggerEvent(document.querySelector('select[name=“Tipo_sistema”]”),'change');
函数loadLista(){
var select=document.getElementById('selezionaVetro');
var opzioni=data2['sistemi'][document.querySelector('select[name=“Tipo_sistema”]”).value].vetro;
for(让i=select.options.length-1;i>=0;i--){
选择.options[i].remove();
}
forEach(opzion=>select.appendChild(新选项(opzion,opzion));
}
函数triggerEvent(el、eventName){
var event=document.createEvent('HTMLEvents');
initEvent(eventName,true,false);
el.调度事件(事件);
}
古典风
极小化软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖软糖
选择一个数字
出于某种原因,For循环没有清除所有选项,但我能够通过while循环清除所有选项:
while (select.options.length > 0) {
select.remove(0);
}
var data2 = {
"sistemi": {
"scorr_vel_class_": {
"maxL": 110,
"maxH": 270,
"vetro": ["Trasparente", "Trasp satinato", "Stampa digitale"]
},
"scorr_vel_minimal_": {
"maxL": 110,
"maxH": 270,
"vetro": ["Trasparente", "Trasp satinato", "Extrachiaro"]
}
}
}
function loadLista() {
var select = document.getElementById("selezionaVetro");
var opzioni = data2.sistemi[document.getElementsByName("Tipo_sistema")[0].value].vetro;
while (select.options.length > 0) {
select.remove(0);
}
for (var i = 0; i < opzioni.length; i++) {
var opt = opzioni[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
}
以下是全部代码(唯一不同的是我更改了for循环,清除了while循环的选项:
while (select.options.length > 0) {
select.remove(0);
}
var data2 = {
"sistemi": {
"scorr_vel_class_": {
"maxL": 110,
"maxH": 270,
"vetro": ["Trasparente", "Trasp satinato", "Stampa digitale"]
},
"scorr_vel_minimal_": {
"maxL": 110,
"maxH": 270,
"vetro": ["Trasparente", "Trasp satinato", "Extrachiaro"]
}
}
}
function loadLista() {
var select = document.getElementById("selezionaVetro");
var opzioni = data2.sistemi[document.getElementsByName("Tipo_sistema")[0].value].vetro;
while (select.options.length > 0) {
select.remove(0);
}
for (var i = 0; i < opzioni.length; i++) {
var opt = opzioni[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
}
var数据2={
“西斯特米”:{
“等级等级”:{
“maxL”:110,
“maxH”:270,
“vetro”:[“Trasparente”、“Trasp satinato”、“Stampa Digital”]
},
“最低等级”:{
“maxL”:110,
“maxH”:270,
“vetro”:[“Trasparente”、“Trasp satinato”、“Extrachiaro”]
}
}
}
函数loadLista(){
var select=document.getElementById(“selezionaVetro”);
var opzioni=data2.sistemi[document.getElementsByName(“Tipo_sistema”)[0]。value]。vetro;
while(选择.options.length>0){
选择。删除(0);
}
对于(变量i=0;i
这篇文章归功于Rodrigo Longo:为(var a=0;a