我遇到了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>
所以你有代码。当我点击“测试”链接时,它应该隐藏“等等等等等等”。再次点击时,它应该显示。但是,我有一个奇怪的问题。我通过调试器处理了代码,似乎行var box = document.getElementById(locale);
无法正常工作。 box
被设置为null。谁能理论化为什么?
答案 0 :(得分:3)
你有几个问题。首先是关键的:
show_links
函数的值是变量test
。这等于undefined
所以它不会匹配任何东西。你需要给你想要匹配id的元素,并传递一个字符串而不是一个未定义的值。
然后是较小的问题。
className
属性,并在样式表中定义样式。inline
和none
之间的div,但div的默认显示值为block
。有理由有div样式的内联,但大多数时候你应该使用另一个元素。答案 1 :(得分:0)
javascript:show_links(test);
test
是一个未知的标识符。你在哪里定义它?你的意思是喂一个字符串吗?
<div class="test"> Blah blah blah. This content comes and goes. </div>
此行中没有ID为test
的元素。使用适当的属性id
。