Mã của bạn là đúng. Có lẽ vấn đề của bạn là bạn không chuyển ID tới hàm AddBorder
hoặc một phần tử có ID đó không tồn tại. Hoặc bạn có thể đang chạy hàm của mình trước khi phần tử được đề cập có thể truy cập thông qua DOM của trình duyệt.
Để xác định các trường hợp đầu tiên hoặc xác định nguyên nhân của vụ án thứ hai, thêm các như các dòng đầu tiên bên trong hàm:
alert('ID number: ' + id);
alert('Return value of gEBI: ' + document.getElementById('horseThumb_' + id));
Điều đó sẽ mở cửa sổ pop-up cửa sổ mỗi khi hàm được gọi, với giá trị của id
và giá trị trả lại là document.getElementById
. Nếu bạn nhận được undefined
cho cửa sổ bật lên số ID, bạn không chuyển đối số cho hàm. Nếu ID không tồn tại, bạn sẽ nhận được số ID (không đúng?) Trong cửa sổ bật lên đầu tiên nhưng nhận được null
trong lần thứ hai.
Trường hợp thứ ba sẽ xảy ra nếu trang web của bạn trông như thế này, cố gắng chạy AddBorder
khi trang vẫn tải:
<head>
<title>My Web Page</title>
<script>
function AddBorder(id) {
...
}
AddBorder(42); // Won't work; the page hasn't completely loaded yet!
</script>
</head>
Để sửa lỗi này, hãy đặt tất cả các mã có sử dụng AddBorder bên trong một sự kiện onload
handler:
// 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);
Chỉ là cách bạn đã thực hiện. Nhưng nếu bạn muốn rõ ràng, bạn có thể thay đổi 'id' thành' id.toString() '. –
Có, bạn đã thực hiện nó một cách chính xác. Nếu nó "không hoạt động", thì cái gì khác là sai, giống như không thực sự là một phần tử với ID đó. –
Mã này: 'getElementById (" horseThumb _ {$ id} ")' không phải là JavaScript, nó là PHP. Vì vậy, đó là lý do tại sao nó không làm việc cho bạn. – Domenic