The querySelector method returns Element | null
.
If you're not using strictNullChecks
then Element, and it doesn't have the value
member.
And so casting it to HTMLInputElement
as I wrote in my comment works:
let myRow = document.getElementById('my-row');
(myRow.querySelector('.myClass') as HTMLInputElement).value = " a vaule";
The error you are receiving is a result of forgetting the semicolon at the end of the first line, what happens is that the compiler thinks that you're trying to do this:
document.getElementById('my-row')(myRow.querySelector('.myClass') as HTMLInputElement)
Don't forget to end lines with semicolons.
Edit
The querySelector
method is generic so you can also do:
document.getElementById('my-row').querySelector<HTMLInputElement>('.myClass').value
And in case of strictNullChecks
if you're sure the element is there you can use the Non-null assertion operator:
document.getElementById('my-row')!.querySelector<HTMLInputElement>('.myClass')!.value