我对可编译语言有一些经验,但我是Javascript的新手,它真的和我混淆了。所以我可能做错了,但我不知道它是什么。
代码示例(不工作):
function show_element(element_name){
document.getElementsByName(element_name)[0].style.display="";
}
function hide_element(element_name){
document.getElementsByName(element_name)[0].style.display="none";
}
function switch_display(element_to_hide, element_to_show){
hide_element(element_to_hide);
show_element(element_to_show);
}
HTML代码如下所示:
<area shape="rect" coords="0,252,98,337" onMouseOver="switch_display("content_navigator_1","content_navigator_2")">
Firefox中的调试在onMouseOver:
时给出了错误信息syntax error: switch_display (
感谢您的帮助!
(次要问题:你是否也遇到过Javascript问题?它真的是一种逻辑语言,还是只是一种试用和错误语言?为了好的缘故,还有一个JS编译器?)
答案 0 :(得分:1)
尝试在参数周围使用单引号。双引号终止属性值。
<area shape="rect" coords="0,252,98,337" onMouseOver="switch_display('content_navigator_1','content_navigator_2')">
答案 1 :(得分:1)
徒手,试试
<area shape="rect" coords="0,252,98,337" onMouseOver="switch_display('content_navigator_1','content_navigator_2')">
或正确地逃避内部报价。
答案 2 :(得分:1)
您的具体错误在这里(您有其他问题,请参阅我的答案底部)
<area shape="rect" coords="0,252,98,337" onMouseOver="switch_display("content_navigator_1","content_navigator_2")">
将其切换为
<area shape="rect" coords="0,252,98,337" onMouseOver="switch_display('content_navigator_1','content_navigator_2')">
如果我需要解释原因,请告诉我。
除了导致错误的原因之外,还有一个问题是,您尝试按名称调用HTML元素,最好是按ID执行,然后使用:
document.getElementById(element_id).style.display="";
答案 3 :(得分:0)
.getElementByName()
返回元素列表,因此您需要使用索引:
document.getElementByName(element_name)[0].style.display = "none";
但是,正如其他人建议的那样,您应该使用getElementById()