代码之家  ›  专栏  ›  技术社区  ›  waiwai933

GetElementByID有问题

  •  0
  • waiwai933  · 技术社区  · 15 年前

    我对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>
    

    所以你有代码了。当我单击链接“test”时,它应该隐藏“blah blah”文本。再次单击时,应显示。但是,我有一个奇怪的问题。我通过调试程序处理了代码,似乎 var box = document.getElementById(locale); 工作不正常。 box 正在将设置为空。有人能解释为什么吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Quentin    15 年前

    你有几个问题。首先是关键因素:

    1. 传递给的值 show_links 函数是变量 test . 这等于 undefined 所以它不会和任何东西匹配。
    2. 你试图通过它找到的元素 身份证件 没有ID。它只有一个类。

    你需要给你想要匹配的元素一个ID并传递一个 一串 而不是未定义的值。

    其次是小问题。

    1. 您正在测试内联显示样式属性,但默认情况下不进行设置。根据经验,最好是把 className 属性,并在样式表中定义样式。
    2. 您使用的是JavaScript伪URI,而不是 progressive enhancement .
    3. 你有 comments wrapped around the inside of the script . AT 最好的 ,这些都是毫无意义的。
    4. 你在旋转中间的一个分区 inline none ,但DIV的默认显示值为 block . 有理由将DIV样式设置为内联,但大多数时候您应该使用另一个元素。
        2
  •  0
  •   meder omuraliev    15 年前
    javascript:show_links(test);
    

    test 是未知的标识符。你在哪里定义的?你的意思是喂一根绳子吗?

    <div class="test"> Blah blah blah. This content comes and goes. </div>
    

    没有ID为的元素 测试 在这条线上。使用适当的属性 id .