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')">

理由を説明する必要がある場合はお知らせください。

エラーの原因に加えて、もう1つの問題は、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 に答える