0

次の方法を使用してスパンタグを単純に更新しようとしています...

<script type="text/javascript">

document.getElementById("myspan").innerHTML="newtext";  

</script>

<span id="myspan"> hereismytext </span>

しかし、私は次のエラーが発生しています:

document.getElementById("myspan") は null です

これを引き起こしている原因についてのアイデアはありますか?

乾杯

リッチ

4

3 に答える 3

2

これは、要素の後にその JavaScript を追加する必要があるためです (JavaScript が要素を表示するには、最初に要素を DOM で作成する必要があります)。

<span id="myspan"> hereismytext </span>
<script type="text/javascript">
    document.getElementById("myspan").innerHTML="newtext";  
</script>

または使用window.onload

<script type="text/javascript">
    window.onload = function(){
        document.getElementById("myspan").innerHTML="newtext";  
    }
</script>
<span id="myspan"> hereismytext </span>
于 2012-09-17T12:11:09.220 に答える
0

DOMと通信するときは、DOMが存在するか、変更する準備ができていることを確認する必要があります。あなたの例では、myspan存在する前にIDを持つ要素を変更しているため(javascriptはhtmlの前に実行されています)、ブラウザーはそれを見つけることができません。あなたはそれを後に置く必要があります:

<!-- HTML -->
<script type="text/javascript">
//change html
</script>

または、準備ができるまで待つことを確認してください。

window.onload = function() {
    //change html
}
于 2012-09-17T12:13:14.693 に答える
0

JavaScript コードを関数に入れ、ページのオンロード ハンドラーで呼び出してみてください。現状では、スクリプト タグがページの上部にある場合、その時点では DOM (したがってスパン) は存在しません。あなたのコードが実行されます:

<script type="text/javascript">
funcion loaded(){
    document.getElementById("myspan").innerHTML="newtext";  
}
</script>

<body onload="loaded()">
    ...
于 2012-09-17T12:11:53.400 に答える