2017-07-26 9 views
1

私はプログラムを始めています。下のコードでは、実行すると、ページを完全に更新します。どうすればこれを避けることができますか?あなたのお時間をありがとうございました!JavaScriptを使用してページを更新せずにHTML Webページに何かを書き込むにはどうすればよいですか?

<h1>Space Calculator Demo</h1><br> If you were to start a trip at 
 
<script type="text/javascript"> 
 
    function printTime() { 
 
    var d = new Date(); 
 
    var hours = d.getHours(); 
 
    var mins = d.getMinutes(); 
 
    var secs = d.getSeconds(); 
 
    document.body.innerHTML = hours + ":" + mins + ":" + secs; 
 
    } 
 
    setInterval(printTime, 1000); 
 
</script> 
 
<div id="time"></div> , how long would it take you and how much food and water would you need?

+1

これはページを更新しませんが、テキスト全体に 'document.body.innerHTML'という本文全体のhtmlを設定します。 –

+1

あなたのページをリフレッシュせず、完全なhtmlを上書きします。 'document.getElementById( 'time')。innerHTML'、** [example](https://jsfiddle.net/ak3zwak7/)** – empiric

+0

または[要素内のテキスト値を変更するには?](https://stackoverflow.com/questions/15296589/change-element-text-without-jquery)、[jqueryを使用してdiv内のテキストのみを置換する](https:// stackoverflow .com/questions/11867269/replace-only-text-inside-a-divを使用するjquery) –

答えて

2

ページでは、あなたの時間に等しいページのボディ全体を設定して、爽やかではありません。 bodyの代わりにtimeと設定します。

<h1>Space Calculator Demo</h1><br> If you were to start a trip at 
 
<script type="text/javascript"> 
 
    function printTime() { 
 
    var d = new Date(); 
 
    var hours = d.getHours(); 
 
    var mins = d.getMinutes(); 
 
    var secs = d.getSeconds(); 
 
    document.getElementById('time').innerHTML = hours + ":" + mins + ":" + secs + ","; 
 
    } 
 
    setInterval(printTime, 1000); 
 
</script> 
 
<div id="time"></div>How long would it take you and how much food and water would you need?

1

代わりのボディを書き換える、のdocument.getElementById(「時間」)を使用してのみ

1

document.body.innerHTMLに割り当てることによって、その要素のテキストを設定し、あなたはすべてのコンテンツを上書きしますページ上にdocument.bodyはページ全体を指しているので、HTMLに設定すると、以前にあったもの(ヘッダー、div、およびテキスト)がすべて消去されます。

あなたがしたいように見えるのは、<div id="time"></div>の内容を変更するだけです。そのために、あなたはこれにライン

document.body.innerHTML = hours + ":" + mins + ":" + secs; 

を変更する必要があります。

document.getElementById('time').innerHTML = hours + ":" + mins + ":" + secs; 

これは、完全なページの残りの部分を残して、あなたのdivの内容だけを上書きします。

関連する問題