문제

다음과 같이 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로 설정되고 있습니다. 누구든지 왜 이론화 할 수 있습니까?

도움이 되었습니까?

해결책

몇 가지 문제가 있습니다. 먼저 중요한 것 :

  1. 당신이 전달하는 가치 show_links 함수는 변수입니다 test. 이것은 동일합니다 undefined 그래서 그것은 아무것도 맞지 않을 것입니다.
  2. 당신이 그것으로 찾으려고하는 요소 ID ID가 없습니다. 수업 만 있습니다.

당신은 당신이 ID와 일치 시키려고하는 요소를 제공하고 정의되지 않은 값 대신.

그런 다음 더 적은 문제입니다.

  1. 인라인 디스플레이 스타일 속성을 테스트하고 있지만 기본적으로 설정하지는 않습니다. 경험상, className 속성, 스타일을 스타일 시트에 정의하십시오.
  2. 당신은 대신 JavaScript pseudo-uri를 사용하고 있습니다 진보적 인 향상.
  3. 당신은 가지고 있습니다 스크립트 내부 주위에 댓글이 포장되었습니다. ~에 베스트, 이것들은 무의미합니다.
  4. 당신은 그 사이의 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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top