코드는 올바른 것입니다. 아마도 문제는 사용자가 AddBorder
함수에 ID를 전달하지 않거나 해당 ID를 가진 요소가 존재하지 않는다는 것입니다. 또는 문제의 요소가 브라우저의 DOM을 통해 액세스 가능하기 전에 함수를 실행할 수도 있습니다.
는 첫 번째 경우를 식별하거나 두 번째 경우의 원인을 확인, 함수 내부의 첫 번째 라인으로이를 추가하려면 팝업 창을 함수가 호출 될 때마다 열립니다
alert('ID number: ' + id);
alert('Return value of gEBI: ' + document.getElementById('horseThumb_' + id));
와
id
의 값과
document.getElementById
의 반환 값. ID 번호 팝업에 대해
undefined
이 표시되면 함수에 인수를 전달하지 않습니다. ID가 없으면 첫 번째 팝업에서 (잘못된?) ID 번호를 얻지 만 초에
null
을 얻습니다. 웹 페이지는 다음과 같습니다 경우 페이지가 여전히로드되는 동안
세 번째 경우는 AddBorder
를 실행하려고, 일어날 것 :
<head>
<title>My Web Page</title>
<script>
function AddBorder(id) {
...
}
AddBorder(42); // Won't work; the page hasn't completely loaded yet!
</script>
</head>
는이 문제를 해결하기 위해, onload
이벤트 안쪽을 AddBorder를 사용하는 모든 코드를 넣어 핸들러는 : 문자열이 숫자와 연결되어있는 경우 자바 스크립트가 가끔 공백을 수 있기 때문에
// 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);
당신이 해낸 방식대로. 그러나 당신이 명시 적으로하고 싶다면'id'를'id.toString()'으로 변경할 수 있습니다. –
네, 제대로했습니다. "작동하지 않는"경우 다른 ID가있는 요소가 실제로없는 것처럼 잘못된 것이 있습니다. –
이 코드는'getElementById ("horseThumb _ {$ id}")'는 JavaScript가 아니므로 PHP입니다. 그래서 그것이 당신을 위해 작동하지 않는 이유입니다. – Domenic