I'm trying to create a textarea with some content inside and i need the height to be based on the content size.
cargarClases() {
var containerGeneral = document.querySelector(".bimContainer").querySelector(".containerInfo--list").querySelector("nav").querySelector("ul");
for (let i = 0; i < 15; i++) {
var li = document.createElement('li');
li.classList.add("classDesplegable");
containerGeneral.appendChild(li);
var image1 = document.createElement('img');
image1.src = '../view/manageproject/img/FlechaBim.svg';
li.appendChild(image1);
var p = document.createElement('p');
p.innerHTML = "Nombre de la clase";
li.appendChild(p);
var ul = document.createElement('ul');
ul.classList.add("dNone");
containerGeneral.appendChild(ul);
for (let j = 0; j < 4; j++) {
var li1 = document.createElement('li');
ul.appendChild(li1);
var p = document.createElement('p');
p.innerHTML = "Nombre de la c...";
p.classList.add("textClass");
li1.appendChild(p);
var p2 = document.createElement('p');
p2.innerHTML = "Nombre de la c...";
p2.classList.add("textClass2");
li1.appendChild(p2);
var textarea = document.createElement("textarea");
function updateHeight(el) {
el.style.height = '';
el.style.height = el.scrollHeight + 'px';
}
updateHeight(textarea);
textarea.addEventListener('input', () => updateHeight(textarea));
textarea.maxLength = "44"
textarea.innerHTML = "P1D30Tr0M0sC0WMul3P1D30Tr0M0sC0WMul3";
if (i % 2 == 0) {
//input.disabled = "true"; togliere commento quando sapremo quali classi possano essere editate e quali no
textarea.classList.add("textArea");
textarea.classList.add("line-clamp");
} else {
textarea.classList.add("textArea");
}
li1.appendChild(textarea);
var check = document.createElement('input');
check.type = 'checkbox';
check.classList.add("inputCheck2");
li1.appendChild(check);
}
}
}
This is what i've found on internet but it doesn't work. The height output is always 0px.
Any help is appreciated because i'm going crazy.
Have a nice day!
Edited so maybe it's easier to understand the problem