2016-09-23 4 views
1

私は、段落タグ内の値から1を追加するには、次のコードを使用しようとしているが、唯一の出力値としてはNaNを取得してきた:JavaScriptを使用してDOMオブジェクトで算術演算を実行する正しい方法は何ですか?

<p id="myNumber">5</p> 
<button onclick="increment()">Click</button> 

<script> 
function increment() { 
    document.getElementById("myNumber").innerHTML = document.getElementById("myNumber").value + 1; 
} 
</script> 

これがNaNを出力している理由は誰もが言うことはできますか?

+1

1.外部イベントを使用します。 ( 'addEventListener')2. DOM要素の値、innerHTML(ここではinnerHTMLは使わず、HTMLを操作せず、' textContent'を使用します)、テキスト値などは 'NaN'です。 3.それらを 'parseInt'、' Number() '、または単項変換でも数値に解析する必要があります。 –

答えて

4

<p>要素の.valueが定義されていないので、それはNaNです。結果としてあなたはこれをしています:

undefined + 1 

これはNaNです。構造体に応じて、.textContentまたは.innerHTMLを使用して要素から値を取得し、parseIntを使用します。

function increment() { 
    document.getElementById("myNumber").textContent = parseInt(document.getElementById("myNumber").textContent,10) + 1; 
} 
+2

'textContent'>' innerText' –

+0

@SterlingArcher - そうです、マイナーな経過:修正するように編集しました。 –

+2

それは私が知っているトラヴィスです:D –

0

あなたは整数としてmyNumberinnerText(文字列)プロパティを解析する必要があります。

document.getElementById("myNumber").innerText = parseInt(document.getElementById("myNumber").innerText) + 1; 
関連する問題