Вход

Просмотр полной версии : Проверка переменной на пустоту


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
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);

DorianLeroy
09.08.2011, 11:39
Спасибо всем за помощь, помогло.

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

Вот это очень изящно - это получается что-то типа тернарного оператора?

melky
09.08.2011, 11:45
parseInt("eter") === NaN
Boolean( NaN ) === false

sampad
30.11.2018, 20:27
$("td").each(function(){
if( $.trim($(this).text()) == "" ){
$(this).text("Теперь этa ячейка не пустая");
}
});