Javascript函数 - 可能出错?

时间:2013-01-26 03:48:07

标签: javascript function variables compiler-construction

我对可编译语言有一些经验,但我是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编译器?)

4 个答案:

答案 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()