Votre code est correct. Peut-être votre problème est que vous ne passez pas un ID à la fonction AddBorder
, ou qu'un élément avec cet ID n'existe pas. Ou vous pourriez exécuter votre fonction avant que l'élément en question soit accessible via le DOM du navigateur.
Pour identifier le premier cas ou déterminer la cause du second cas, ajoutez-les comme les premières lignes à l'intérieur de la fonction:
alert('ID number: ' + id);
alert('Return value of gEBI: ' + document.getElementById('horseThumb_' + id));
qui ouvrira ses portes fenêtres pop-up à chaque fois que la fonction est appelée, avec la valeur de id
et la valeur de retour de document.getElementById
. Si vous obtenez undefined
pour le pop-up numéro d'ID, vous ne passez pas un argument à la fonction. Si l'ID n'existe pas, vous obtiendrez votre numéro d'identification (incorrect?) Dans la première fenêtre, mais obtiendrez null
dans la seconde.
Le troisième cas se passerait-il si votre page Web ressemble à ceci, en essayant d'exécuter AddBorder
pendant le chargement encore:
<head>
<title>My Web Page</title>
<script>
function AddBorder(id) {
...
}
AddBorder(42); // Won't work; the page hasn't completely loaded yet!
</script>
</head>
Pour résoudre ce problème, mettre tout le code qui utilise AddBorder l'intérieur d'un événement onload
gestionnaire:
// Can only have one of these per page
window.onload = function() {
...
AddBorder(42);
...
}
// Or can have any number of these on a page
function doWhatever() {
...
AddBorder(42);
...
}
if(window.addEventListener) window.addEventListener('load', doWhatever, false);
else window.attachEvent('onload', doWhatever);
Juste comme vous l'avez fait. Mais si vous voulez être explicite, vous pouvez changer 'id' en' id.toString() '. –
Oui, vous l'avez fait correctement. Si cela ne fonctionne pas, alors quelque chose d'autre est faux, comme s'il n'y avait pas d'élément avec cet ID. –
Ce code: 'getElementById (" horseThumb _ {$ id} ")' n'est pas JavaScript, c'est PHP. Voilà pourquoi ça n'a pas marché pour vous. – Domenic