Ваш код правильний. Можливо, ваша проблема полягає в тому, що ви не передаєте ідентифікатор AddBorderфункції, або що елемент з цим ідентифікатором не існує. Або ви можете запускати свою функцію до того, як відповідний елемент буде доступний через DOM браузера.
Щоб визначити перший випадок або визначити причину другого випадку, додайте їх як перші рядки всередині функції:
alert('ID number: ' + id);
alert('Return value of gEBI: ' + document.getElementById('horseThumb_' + id));
Це відкриє спливаючі вікна при кожному виклику функції зі значенням idта поверненим значенням document.getElementById. Якщо ви отримуєте undefinedспливаюче вікно з ідентифікаційним номером, ви не передаєте аргумент функції. Якщо ідентифікатора не існує, ви отримаєте свій (неправильний?) Номер ідентифікатора у першому спливаючому вікні, але отримаєте nullу другому.
Третій випадок може статися, якщо ваша веб-сторінка виглядає так, намагаючись запустити, AddBorderпоки сторінка все ще завантажується:
<head>
<title>My Web Page</title>
<script>
function AddBorder(id) {
...
}
AddBorder(42);
</script>
</head>
Щоб виправити це, покладіть увесь код, який використовує AddBorder, всередині onloadобробника подій:
window.onload = function() {
...
AddBorder(42);
...
}
function doWhatever() {
...
AddBorder(42);
...
}
if(window.addEventListener) window.addEventListener('load', doWhatever, false);
else window.attachEvent('onload', doWhatever);
idнаid.toString().