GetElementById의 문제
-
11-09-2019 - |
문제
다음과 같이 GetElementById에 문제가 있습니다.
<script type="text/javascript">
<!--
function show_links(locale) {
var box = document.getElementById(locale);
if(box.style.display == "none") {
box.style.display = "inline";
}
else {
box.style.display = "none";
}
}
//-->
</script>
<div class="link"><strong><a href="javascript:show_links(test);">Test</a></strong></div>
<div class="test"> Blah blah blah. This content comes and goes. </div>
그래서 당신은 코드가 있습니다. "테스트"링크를 클릭하면 "Blah Blah Blah Text"를 숨겨야합니다. 다시 클릭하면 표시됩니다. 그러나 이상한 문제가 있습니다. 디버거를 통해 코드를 처리했는데 라인이 var box = document.getElementById(locale);
올바르게 작동하지 않습니다. box
NULL로 설정되고 있습니다. 누구든지 왜 이론화 할 수 있습니까?
해결책
몇 가지 문제가 있습니다. 먼저 중요한 것 :
- 당신이 전달하는 가치
show_links
함수는 변수입니다test
. 이것은 동일합니다undefined
그래서 그것은 아무것도 맞지 않을 것입니다. - 당신이 그것으로 찾으려고하는 요소 ID ID가 없습니다. 수업 만 있습니다.
당신은 당신이 ID와 일치 시키려고하는 요소를 제공하고 끈 정의되지 않은 값 대신.
그런 다음 더 적은 문제입니다.
- 인라인 디스플레이 스타일 속성을 테스트하고 있지만 기본적으로 설정하지는 않습니다. 경험상,
className
속성, 스타일을 스타일 시트에 정의하십시오. - 당신은 대신 JavaScript pseudo-uri를 사용하고 있습니다 진보적 인 향상.
- 당신은 가지고 있습니다 스크립트 내부 주위에 댓글이 포장되었습니다. ~에 베스트, 이것들은 무의미합니다.
- 당신은 그 사이의 div를 twidding하고 있습니다
inline
그리고none
, 그러나 div의 기본 표시 값은block
. DIV 스타일을 인라인으로해야 할 이유가 있지만 대부분 다른 요소를 사용해야합니다.
다른 팁
javascript:show_links(test);
test
알려지지 않은 식별자입니다. 어디에서 정의 했습니까? 끈을 먹이려고 했습니까?
<div class="test"> Blah blah blah. This content comes and goes. </div>
ID가있는 요소가 없습니다 test
이 라인에서. 적절한 속성을 사용하십시오 id
.
제휴하지 않습니다 StackOverflow