4

なぜこれがうまくいかないのか本当に理解できません。私はいくつかのトリックを試しましたが、うまくいきません。

<html>
<head>
<script type="text/javascript">
alert('Hey');
    var vText = document.getElementById("results");
        vText.innerHTML = 'Changed';
        alert(vText.innerHTML);
</script>
</head>
<body>
<div id="results">
hey there
</div>
</body>
</html>
4

5 に答える 5

12

あなたがここで見ることができるようにこれは働いています:

http://jsfiddle.net/gHbss/

JavaScriptをHTMLdivコンテナの後に置くことが重要です。

于 2012-04-14T22:52:58.060 に答える
4

あなたが直面している問題は、ページをレンダリング/処理するときに発生したJavaScriptをブラウザが実行することです。この時点でalert()メッセージは表示されますが、関連する要素である#results divはDOMに存在しないため、何も変更できません。

これに対処するには、ページの最後、終了タグscriptの直前にを配置するか、またはのイベントでコードを実行します。</body>onloadbodywindow

于 2012-04-14T22:52:38.227 に答える
1

スクリプトは、div#resultsの後に配置するか、onloadで実行する必要があります。そうしないと、要素にアクセスしようとしたときに要素が不明のままになります。

于 2012-04-14T22:51:48.693 に答える
1

onloadイベントでこのスクリプトを呼び出す必要があります。

 window.onload=function(){
//your code
}
于 2012-04-14T22:53:04.573 に答える
1
<html>
<head>
<script type="text/javascript">
function onloadCall()
{
    alert('Hey');
    var vText = document.getElementById("results");                                                 
    vText.innerHTML = 'Changed';
    alert(vText.innerHTML);
}
</script>
</head>
<body onload="onloadCall()">
    <div id="results">
    hey there
    </div>
</body>
</html>

上記のスニペットが修正を示していることを願っています

于 2012-04-14T23:02:28.713 に答える