Js'de foreach ile oluşturduğum elementi başka fonksiyona çağıramıyorum. hata alıyorum

for(var i = 0; i<3010; ++i){
 var link = document.createElement("a");
 link.innerHTML = "▉"
 link.id = "btn";
 link.id += i;
 link.classList = "boxstyle"
 boxs.appendChild(link);
 link.addEventListener("click", clickFunc)
}


// renge tıklanınca kapatma ve renk id alma
colors.forEach(element => {
    element.onclick = function(){
        maincolor.style.display ="none";
        var getcolor = element.id;
        console.log(getcolor);
    }
    
});



function clickFunc(e){
    var idSelect = e.target.id;
    idSelect.style.color = getcolor.style.color;
    console.log(idSelect);
}

colors class’ı ise şu şekilde;

  •     <li><div class="colors" id="color2"></div></li>
    
        <li><div class="colors" id="color3"></div></li
    

    diye devam ediyor

    şöyle bir kodum var. foreach ile oluşturmuş olduğum getcolor’u clickFunc’ta tanımlayamıyorum yani foreach ile almış olduğum id’nin color’unu, idSelect’e geçmesini istiyorum

    sorunum şu sanırım oluşturmul olduğum fonksiyonlarda ki ve foreachler de ki “var” ları alamıyorum

    Foreach’in içinde tanımladığın için alamıyorsun. Bunun için dışarıda bir var tanımlayıp foreach yapısının içinde ona atama yapman lazım. Aynı şekilde colors’tan element çektiğin vakit foreach hep en son elemente döndüğü için en son elementin color’unu alacak.

    Mesela [“yeşil”,“Kırmızı”,“Mavi”] diye bir dizinim var. Bu dizinde ben foreach yaptığım için en son dizin elemanına(maviye) kadar gidiyor. Daha sonra onu alıp geri döndürecek. O yüzden renk hep mavi olacak.

    1 Beğeni