Om det å vente 3 sekunder før du kaller funksjonen ikke funker, det funker om du skriver inn navnet manuelt - men å generere navnet programatisk ikke funker så er min gjeldende hypotese at det er noe feil med det genererte navnet. En misstanke er usynlig unicode-tegn som lurer seg med fra systemet du henter ned dataene fra.
Kunne du testet følgende kode og gitt meg output?
Kode
function convertStringToHex(str) {
const arr = [];
for (let i = 0; i < str.length; i++) {
arr[i] = ("00" + str.charCodeAt(i).toString(16)).slice(-4);
}
return "\\u" + arr.join("\\u");
}
async function drawcomputers() {
const computers = await loadcomputers();
for (let comput of computers) {
console.log("Updating", comput.Company);
const generatedName = "divcomputers" + comput.Company;
const hardcodedName = "divcomputersJHS";
const divFromGeneratedName = document.getElementById(generatedName);
const divFromHardcodedName = document.getElementById(hardcodedName);
console.log("generated name as hex:", convertStringToHex(generatedName));
console.log("hardcoded name as hex:", convertStringToHex(hardcodedName));
console.log("hardcoded and generated is the same?", generatedName === hardcodedName);
console.log("div from generated name", divFromGeneratedName);
console.log("div from hardcoded name", divFromHardcodedName);
divFromGeneratedName.innerHTML = comput.Company; // Denne skriver ut riktig navn på diven ;
}
}
Sist endret av etse; 18. mai 2021 kl. 21:02.