cuando uso esta función me da error que no es una función.
<div id="cards_main"></div> let arry = new Array(); for (i = 0; i < 2; i++) { if (document.getElementsByTagName("input")[i].value != "") { for (cards of arry) { if (cards.naming.toLocaleLowerCase().startsWith(document.getElementsByTagName("input")[i]).toLocaleLowerCase()) { document.querySelector("#cards_main").innerHTML = ""; addCard(cards); } } } }Tenga en cuenta que la matriz no está vacía
Hay algunos problemas en su código.
El método .startsWith() devuelve un valor booleano de true o false y espera una cadena. En su caso, le está pasando un elemento HTML.
Prueba en su lugar:
.startsWith(document.getElementsByTagName("input")[i].value) .toLocaleLowerCase() debe ejecutarse en un tipo de cadena, pero lo está ejecutando en un booleano.
if (cards .naming .toLocaleLowerCase() .startsWith(document.getElementsByTagName("input")[i]) // This returns a boolean .toLocaleLowerCase() // But this line isn't valid on a boolean ) { Probablemente quería llamar a toLocaleLowerCase en su valor de entrada.
Pruebe este código en su lugar:
const inputValue = document.getElementsByTagName("input")[i].value; if (cards.naming.toLocaleLowerCase().startsWith(inputValue.toLocaleLowerCase())) { // ... }