11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à vous,
j'ai une petite fonction JS qui permet de récupérer une chaine de caractères dans une cellule d'un tableau, et d'afficher un message dans une div. En même temps, je récupère l'id qui correspond à cette chaine de caractère pour le mettre en hidden afin de faire un DELETE dans la BDD. Seulement il me retourne cette erreur, et je ne vois pas du tout ce que c'est...

TypeError: document.getElementsById is not a function

voici la fonction :

function recupNomIdProjet(){

var recupIdRef = document.getElementsById('id_ref_supp').innerHTML;
var recupRef = document.getElementsByTagName('table')[0].getElementsByClassName('highlight')[0].cells[0].innerHTML;

if(recupRef){
document.getElementById('hidden_supp').innerHTML = '<input id="idCache" name="id_ref_cache" type="text" value="'+recupIdRefProjet+'">';
document.getElementById('nomRef').innerHTML = recupRef;
}
}


Quand je supprime "recupIdRef" (tout, la variable et ce qui le concerne dans le if) ça marche...

Si vous pouviez m'aider.. Smiley lol
Bonjour,
Oh p*****....merci beaucoup ! Smiley lol

Oui...un id...c'est unique, ça coule de sens... Smiley chauffe
Modifié par melER5 (16 Apr 2020 - 15:38)
Hello,

Je pousse le vice Smiley lol
un ID (unique) déclaré dans le DOM déclare aussi une variable globale portant le nom de l'ID
Donc:

document.getElementById('toto').innerHTML = "Youpiii";
// est équivalent à:
toto.innerHTML = "Youpiii";

Bien entendu getElementById reste indispensable quand on doit manipuler avec des ID générés, par exemple dans une boucle:

const DivNumbers = document.getElementsByClassName("number");

for ( let i = 0; i < DivNumbers .length; i++) document.getElementById(DivNumbers[i].id).innerText = "Texte " + i;

// oui on aurrait pu faire ça aussi mais c'est pour l'exemple:
for ( let i = 0; i < DivNumbers .length; i++) DivNumbers[i].innerText = "Texte " + i;