Две причины, по которым код не работает:
case
выражения заканчиваются :
, поэтому код не может быть успешно проанализирован.
Ваши number
и number1
переменные относятся к числа, а не элемент, и поэтому присваивание .value
собственности на них не делать то, что вы хотите. (Это что-то делает, очень кратко, но ничего, что длится.)
Кроме того, лучше всегда давать parseInt
свой второй аргумент, который является радикс (номер базы), следует использовать при анализе.
Если вы хотите использовать switch
для этого, то:
function display(buttonclickedvalue)
{
var numfield = document.getElementById('numbertxt'),
num = parseInt(numfield.value, 10) || 0;
switch (buttonclickedvalue)
{
case "+":
numfield.value = num + 1;
break;
default:
numfield.value = num - 1;
break;
}
}
Там я добавил недостающую :
, используется default:
вместо case "-":
для второй, учитывая parseInt
десятичную, и используется 0
если по какой-то причине поле содержит то, что не может быть проанализировано как int (в этом случае parseInt
вернет NaN
, что является ложным, и поэтому вместо этого используется || 0
, см. JavaScript's Curiously Powerful OR Operator (||)).
Но, как правило, когда есть только два случая, вы будете использовать if
или условный оператор:
if
:
function display(buttonclickedvalue)
{
var numfield = document.getElementById('numbertxt'),
num = parseInt(numfield.value, 10) || 0;
if (buttonclickedvalue === "+")
{
numfield.value = num + 1;
}
else
{
numfield.value = num - 1;
}
}
Условный оператор:
function display(buttonclickedvalue)
{
var numfield = document.getElementById('numbertxt'),
num = parseInt(numfield.value, 10) || 0;
numfield.value = num + (buttonclickedvalue === "+" ? 1 : -1);
}
что последние могут, конечно, конденсируются далее за счет удобочитаемости:
function display(buttonclickedvalue)
{
var numfield = document.getElementById('numbertxt');
numfield.value = (parseInt(numfield.value, 10) || 0) + (buttonclickedvalue === "+" ? 1 : -1);
}
Ваши случаи синтаксически неправильно. –
Прежде чем кто-нибудь ответит на ваш вопрос, не могли бы вы принять правильный ответ на свои предыдущие вопросы (если есть)? Если вы продолжаете спрашивать, не возвращаясь, чтобы отметить правильный ответ, люди будут меньше готовы помочь вам в будущем. –
не думал, что у пришлось это сделать. он говорит, что не сказал спасибо или +1. il сделать это сейчас –