2016-11-06 7 views
-6

показать свою ошибку почему не работает плюс Просьба помочьвар = document.getElementById ('mynubervalue1'). InnerHTML + 1

<div id="demo">5</div> 
<div id="demoshowplus"></div> 
<div id="demoshow"></div> 

var x = document.getElementById("demo").innerHTML; 
document.getElementById("demoshow").innerHTML = x - 2; 
document.getElementById("demoshowplus").innerHTML = x + 2; 

http://codepen.io/parazit/pen/woBpar

+3

Добро пожаловать на переполнение стека! Пожалуйста, примите [тур], осмотритесь и прочитайте [помощь], в частности [* Как задать хороший вопрос?] (/ Help/how-to-ask) Что нарушено? Тот факт, что вы не видите, что ожидаете в 'demoshowplus'? –

+2

Я предполагаю, что это [эта проблема] (http://stackoverflow.com/questions/3638074/adding-two-numbers-in-javascript-incorrectly) – vlaz

+0

Не пытайтесь добавить число в строку ... см. 'parseInt()' или 'parseFloat()' – Tyr

ответ

2

Если проблема у Вас есть это что вы не видите то, что ожидаете в demoshowplus, потому что x является строкой , и поэтому x + 2 является конкатенацией строк ("5" + 2 is "52"), нет дополнение. Это не влияет на другое, потому что - будет принуждать свои операнды к номерам, если они не являются числами, но + используется как для добавления, так и для конкатенации.

Если вы хотите, чтобы преобразовать номер первого, у вас есть несколько вариантов:

  • Используйте одинарный +: +str
  • Используйте parseInt(str) или parseFloat(str)
  • Использование Number(str), который работает как +str

This answer раскрывает детали про s и минусы использования различных способов.

Вот пример использования +:

var x = +document.getElementById("demo").innerHTML; 
 
// -----^ 
 
document.getElementById("demoshow").innerHTML = x - 2; 
 
document.getElementById("demoshowplus").innerHTML = x + 2;
<div id="demo">5</div> 
 
<div id="demoshowplus"></div> 
 
<div id="demoshow"></div>

Смежные вопросы