Как добавить числовые значения, которые хранятся в строках?

Я пытаюсь добавить 1 в мою переменную JavaScript, но следующий код не дает ожидаемых результатов:

var val1 = document.getElementById('<%= rng1.ClientID %>');
var val2 = val1.value + "1";
alert(val2.value);

Как я могу это сделать?

Ответ 1

вы можете использовать функцию parseInt() для преобразования строки, хранящейся в val1.value, в число:

var val2 = parseInt(val1.value) + 1;

Обратите внимание, что Number(val1.value) также преобразует ваше значение в число.

-edit -
Как следует из предложения yc, настоятельно рекомендуется использовать parseInt(val1.value, 10) + 1;, потому что если ваша строка начинается с "0", строка интерпретируется как восьмеричная. например. parseInt("0123") == 83 и не 123

Ответ 2

Самый простой и предпочтительный способ - использовать + для перевода в число.

<сильные > Примеры:

+'234'; // 234
+'042'; // 42! It does not convert to octal

В вашем случае:

var val1 = +(document.getElementById('<%= rng1.ClientID %>').value); // () added just for the looks
var val2 = val1.value + 1; // if val1 is 5, val2 will be 6 hooray!
alert(val2); // just val2, since it a plain number not an html input element

Ответ 3

parseInt($('.scpContainer').height()+200)

Ответ 4

вы должны добавить номер, поэтому попробуйте его без кавычек: -)

Ответ 5

В внешнем файле JavaScript вы не можете использовать <%=ControlID.ClientID %> для получения идентификатора клиента.

Если вы используете внешний файл JavaScript, вам нужно передать значение идентификатора клиента этой функции.