Ihr Code ist korrekt. Möglicherweise besteht Ihr Problem darin, dass Sie keine ID an die AddBorderFunktion übergeben oder dass ein Element mit dieser ID nicht vorhanden ist. Oder Sie führen Ihre Funktion aus, bevor das betreffende Element über das DOM des Browsers zugänglich ist.
Fügen Sie diese als erste Zeilen in die Funktion ein, um den ersten Fall zu identifizieren oder die Ursache für den zweiten Fall zu ermitteln:
alert('ID number: ' + id);
alert('Return value of gEBI: ' + document.getElementById('horseThumb_' + id));
Dadurch werden bei jedem Aufruf der Funktion Popup-Fenster mit dem Wert von idund dem Rückgabewert von geöffnet document.getElementById. Wenn du bekommstundefined das Popup für die ID-Nummer erhalten, übergeben Sie kein Argument an die Funktion. Wenn die ID nicht vorhanden ist, erhalten Sie Ihre (falsche?) ID-Nummer im ersten Popup, aber nullim zweiten.
Der dritte Fall würde eintreten, wenn Ihre Webseite so aussieht und versucht, ausgeführt zu werden, AddBorderwährend die Seite noch geladen wird:
<head>
<title>My Web Page</title>
<script>
function AddBorder(id) {
...
}
AddBorder(42);
</script>
</head>
Um dies zu beheben, fügen Sie den gesamten Code, der AddBorder verwendet, in einen onloadEreignishandler ein:
window.onload = function() {
...
AddBorder(42);
...
}
function doWhatever() {
...
AddBorder(42);
...
}
if(window.addEventListener) window.addEventListener('load', doWhatever, false);
else window.attachEvent('onload', doWhatever);
idzuid.toString().