Вы не сможете получить доступ к элементу, пока он не будет записан в DOM.
Обратите внимание на слово document в document.getElementById (). Это метод документа API. DOM расшифровывается как объектная модель документа.
Если вы хотите изменить его раньше, то разбейте строковый литерал на разные части. Назначьте указанные c переменные для важных частей элемента.
Затем измените их. Объедините их обратно в одну строку и добавьте их в DOM.
Ваш код может использовать некоторые комментарии. Немного неясно, что ты пытаешься сделать. Здесь я изменил ваше перо, чтобы показать несколько разных способов обработки каждого цвета в вашем массиве данных. Вы можете сделать некоторые условные логики c и возвращать различные строки шаблона, основываясь на этом. Вы можете легко передать свойства объекта данных другой функции javascript, используя атрибут onclick.
Надеемся, это поможет вам приблизиться к цели
const data = [{color : "red"},{color : "blue"}, {color : "green"} ];
function alertFunction(color) {
alert(color);
}
function libraryRoot(){
return('<div id="appDiv">' +
data.map(function(value) {
var result = `<div><p>Color ${value.color} from libraryRoot</p>`;
if (result.indexOf("red") > -1) { // checking if the div includes red
return result;
} else if (`${value.color}` == "blue") { // checking if the objects color prop includes blue
return "<p>blue</p>";
} else {
return `<button onclick="alertFunction('${value.color}')">Button with function</button>`;
}
}).join("")
+ "</div>"
);
}
window.onload = libraryRoot;
document.getElementById("root").innerHTML = libraryRoot();
<div>
<div id="root"></div>
</div>