HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
</head>
<body>
<select>
</select>
<select>
</select>
</body>
</html>
JS:
let metrics = {
"baseMetric": "cm",
"convertRules": {
"m": {
"label": "meter",
"baseMetric": "100"
},
"in": {
"label": "inch",
"baseMetric": "2.54"
},
"ft": {
"label": "foot",
"baseMetric": "30.48"
},
"mm": {
"label": "Millimeter",
"baseMetric": "0.1"
},
"km": {
"label": "Kilometer",
"baseMetric": "100000"
},
"yd": {
"label": "Yard",
"baseMetric": "91.44"
}
}
}
const selects = document.querySelectorAll('select');
function addMetricsToSelect(metrics) {
for (let [key, value] of Object.entries(metrics.convertRules)) {
let option = document.createElement('option');
option.text = value.label
option.value = key
selects[0].appendChild(option)
selects[1].appendChild(option)
}
}
addMetricsToSelect(metrics);
Заполняется только тот select который будет стоять последним. Причем значение в первый тоже попадают но сразу же удаляются, почему так происходит? Вот ссылка на
фидл