Даданне двух зменных у JS

Я не ведаю, чаму, але ў мяне паўсталі сур'ёзныя праблемы, спрабуючы дадаць 1 да зменнай.

    net = $('#net').val()+1;
$('#net').val(net).change();

Гэта прыводзіць да 1 1 (я разумею, што гэта проста канкатэнацыі). Апошняя радок для вываду яго на маё поле ўводу. калі я раблю гэта:

    net = net+1;
$('#net').val(net).change();

Я атрымліваю NaN. Калі я спрабую выкарыстоўваць ParseInt як гэта:

    net = net+1;
net = parseInt(net,10);
$('#net').val(net).change();

Я ўсё яшчэ атрымліваю NaN. Ihave паглядзеў на іншыя прыклады на так, што адрасы гэтую праблему, і яны кажуць, каб выкарыстоўваць ParseInt (), які я зрабіў. Што яшчэ я магу паспрабаваць атрымаць гэта дадаць 1 да існай колькасьці і putit ў маім полі?

1
Што вынік ParseInt ($ ( '# нета'). Вал ()) + 1
дададзена аўтар vc 74, крыніца

6 адказы

паспрабаваць зрабіць = нета ParseInt (нета, 10); першы

then net = net+1;

У сваім кодзе вы робіце:

net = net+1; //from this point net=11
net = parseInt(net,10);

што няправільна, Вы павінны інвертаваць дзве заявы

net = parseInt(net,10); //here net=1 (integer representation)
net = net+1;//the '+' between two integers will result in an addition and not a concatenation
4
дададзена
Гэта той, які ў рэшце рэшт зрабіў трук. Дзякуй усім за вашу дапамогу і адказы.
дададзена аўтар Jim, крыніца
ParseInt (нета, 10) з'яўляецца лепшым адказам да гэтага часу, так як ён прадухіляе няцотныя выпадкі краю, дзе радкі, як «011» могуць быць вытлумачаны як 9
дададзена аўтар Andrew, крыніца

Паспрабуйце гэта:

net = +net + 1;
$("#net").val(net);

The + in front of your net variable casts this to a Number

Fiddle: http://jsfiddle.net/tymeJV/WudHW/1/

3
дададзена
Тым не менш атрымаць NaN. Ці робіць падвойныя quuotes розніца?
дададзена аўтар Jim, крыніца
@Jim захаваць кропку супыну ў вашым любімым сродку распрацоўкі браўзэра і праверыць, дзе праблема ўзнікнення.
дададзена аўтар Mr_Green, крыніца
@Jim - Перад тым, як рабіць якія-небудзь матэматыку, можна зрабіць зрабіць хуткі абвесткі (нета) і пераканайцеся, што нета пераменная фактычна змяшчае дадзеныя?
дададзена аўтар tymeJV, крыніца
var a = parseInt($('#net').val())+1

$('#net').val(a).change();

гэта павінна дапамагчы.

1
дададзена

Use parseInt

     net = parseInt($('#net').val())+1;
     $('#net').val(net).change();
0
дададзена

Справа ў тым, пераменная нета не з'яўляецца лікам, але радок, вы павінны спачатку разабраць яго на міжнар:

net = parseInt($('#net').val());

А потым рабіць усю надбудову вы хочаце.

0
дададзена

Гэта адбываецца таму, што вал() вяртае радок, і вы спрабуеце дадаць 1 у радок, якая змяшчае нумар 1 і прастора ліст. Паспрабуйце, напрыклад,

var net = +$.trim($('#net').val());
$('#net').val(net + 1).change();

Гэта дазваляе пазбавіцца ад пустой прасторы і ставіць сетку як лік, перш чым ўставіць яго назад на ўваход (?) Поле.

0
дададзена