0

javascriptが埋め込まれたhtml

<html>
<head>
        <title>Example</title>

        <script type ="text/javascript">

この関数を正しく呼び出しましたか????

function displayatts()
{
    document.getElementById("buttonone").onclick = saysomething;

}

ここに何か問題がありますか?

function saysomething()
{
    alert("I am 28 years old");
}
</script>

<body>
<input type="button" id="buttonone" value="me" >

</body>
</head>
</html>
4

5 に答える 5

1

スクリプトは、ドキュメントが解析される前に実行されます。
したがって、getElementByIdnullを返します。

を下に移動し<script>ます。

于 2012-08-16T03:10:57.830 に答える
1

これが完全な例です。

これは確実に機能します。必要に応じてテストしてください。以下のコードをコピーして W3Schools テスト環境に貼り付け、[編集してクリックしてください] をクリックしてテストします。

http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_iframe

<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<script type ="text/javascript">

    function saysomething()
    {
        alert("I am 29 years old");
    }

    function displayatts()
    {
        document.getElementById("buttonone").onclick = saysomething;

    }

</script>


<body onload="displayatts();">
 <input type="button" id="buttonone" value="me" >
</body>
</head>
</html>
于 2012-08-16T03:36:20.003 に答える
1

「この関数を正しく呼び出しましたか????」

displayatts()関数をまったく呼び出していません。スクリプトの最後に次を追加します。

window.onload = displayatts;

displayatts()ページの読み込みが完了すると、その方法が自動的に呼び出されます。次に、ボタンにクリック ハンドラーを設定します。

また、</head>開始タグの直前に終了タグを含めます<body>

デモ: http://jsfiddle.net/nnnnnn/rxDXa/

于 2012-08-16T03:23:31.963 に答える
0
window.onload  =  displayatts;
于 2012-08-16T03:17:58.820 に答える
0

ページのタグの前にこのコードを貼り付け</body>ます。したがって、html 要素がレンダリングされる前に、要素が null であるかどうか、またはコードが機能しようとしているかどうかを確認できます。これがあなたの状況に役立つことを願っています..

<script>
var element = document.getElementById("buttonone");
if(element){
element.setAttribute("onclick", "saysomething();");
}else
{
alert("element null, move the code to bottom or check element exists");
}
</script>
于 2012-08-16T03:20:59.043 に答える