1

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

4 回答 4

1

尝试在你的论点周围使用单引号。双引号终止属性值。

<area shape="rect" coords="0,252,98,337" onMouseOver="switch_display('content_navigator_1','content_navigator_2')">
于 2013-01-26T03:54:17.813 回答
1

随手一试

<area shape="rect" coords="0,252,98,337" onMouseOver="switch_display('content_navigator_1','content_navigator_2')">

或正确转义内部引号。

于 2013-01-26T03:54:24.563 回答
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="";
于 2013-01-26T03:54:34.033 回答
0

.getElementByName()返回元素列表,因此您需要使用索引:

document.getElementByName(element_name)[0].style.display = "none";

但是,正如其他人建议的那样,您应该使用getElementById()

于 2013-01-26T03:57:54.747 回答