Каждый раз, когда вы вызываете fetchc()
, вы перебираете свой массив clr
, поэтому вы снова добавляете свои предыдущие выборы.
Если вы объявили clr
вне этой функции, вы можете увидеть этот пример :
const addedColors = [];
function fetchc(){
const selectedColor = document.getElementById("product_color").value;
console.log(`selectedColor is ${selectedColor}`);
addedColors.push(selectedColor);
addedColors.map((color) => {
console.log(`adding color ${color}`)
})
В этом случае вывод будет
selectedColor равно # 004080
добавляется цвет # 004080
selectedColor равно # 400040
добавляется цвет # 004080
добавление цвета # 400040
selectedColor равно # 400080
добавление цвета # 004080
добавление цвета # 400040
добавление цвета # 400080
И как вы можете видеть Вы только что добавили первый цвет (004080) 3 раза.
Вместо этого просто добавьте новый цвет (для этого вам также не нужно jQuery):
function fetchc(){
const selectedColor = document.getElementById("product_color").value;
console.log(`selectedColor is ${selectedColor}`);
const newInput = document.createElement("input");
newInput.type = 'color';
newInput.value = selectedColor;
document.getElementById("colors").appendChild(newInput);
addedColors.push(selectedColor);
}