Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка переменной на пустоту (https://javascript.ru/forum/misc/20531-proverka-peremennojj-na-pustotu.html)

DorianLeroy 08.08.2011 18:37

Проверка переменной на пустоту
 
Всем привет.

Я получаю из опеределённого поля число, вот так:


var priceforcart = $("#summ_order").html();



При первом обращении к полю #summ_order - там ничего нет, пустая строка(т.е. получается просто <div id="summ_order"></div>), далее это поле наполняется - <div id="summ_order">VALUE</div>.

Мне нужно использоваться эту переменную в условном операторе. Как проверить переменную priceforcart на то что там ничего нет? )

Делал вот так:

if (isNaN(priceforcart)){
   ...
				}
но почему-то не получается.

devote 08.08.2011 18:42

if ( priceforcart === "") {
   // пустая епрс. =)))
}

TicTac 08.08.2011 18:44

так не?
priceforcart == ""

dmitriymar 08.08.2011 18:47

если ты переменную инициализировал через var ,но не присвоил ей значение-она будет undefenit

alert(b);
alert(typeof(b));
var b;
var a;
b=a;
alert(b);
if(typeof(b)=="undefined") alert("пусто");

или я неправильно понял задачу

devote 08.08.2011 18:48

dmitriymar, :-? undefined

dmitriymar 08.08.2011 18:49

devote,
попутал темы в первом сообщении

DorianLeroy 08.08.2011 19:09

Не получается. Наверно не до конца все объяснил.

var priceforcart = $("#summ_order").html(); 
priceforcart = parseInt(priceforcart);
priceforcart = priceforcart+price; 
$("#summ_order").text(priceforcart);


Переменная price - всегда целое число.
Так вот когда мы первый раз обращаемся к #summ_order(между дивами ничего нет) - при выполнении $("#summ_order").text(priceforcart); в соответствующем поле(div id="summ_order">) пишется NaN.

dmitriymar 08.08.2011 19:18

Цитата:

Сообщение от DorianLeroy
text(priceforcart); в соответствующем поле(div id="summ_order">) пишется NaN.

всё правильно
при выполнении этой операции priceforcart = parseInt(priceforcart); ты получишь NaN поскольку нельзя привести пустую строку к числу. а NaN+число тоже будет NaN; если ты пременной присваиваешь строковое значение пусть даже и пустое-переменная приобретёт строковой тип.
var b="";
alert(typeof(b));
alert(parseInt(b));

рони 08.08.2011 19:19

DorianLeroy,
Вариант ...
priceforcart = parseInt(priceforcart)||0;

devote 08.08.2011 19:20

var priceforcart = $("#summ_order").html();  
priceforcart = ( parseInt( priceforcart ).toString() === "NaN" ) ? 0 : parseInt( priceforcart );
priceforcart = priceforcart+price;  
$("#summ_order").text(priceforcart);


Часовой пояс GMT +3, время: 19:10.