Я искал StackOverflow, но никаких вопросов не соответствовала моей конкретной дилемме. У меня есть DIV с классом обув, который устанавливается с помощью CSS для дисплей: встроенный блок.Если условие не влияет на отображение div
Я хотел Foo, чтобы быть видимым, когда переменная температура является числом или строкой, но не показывать когда это не является числом или строкой.
var temp;
if (temp !== undefined || temp !== null) {
temp = temp/1000;
temp = temp + 'K';
$('.foo').css("display", "inline-block");
}
else {
$('.foo').css("display", "none");
}
Когда я запускаю этот код, «foo» вообще не отображается.
, когда я изменить код для
var temp;
if (temp != undefined || temp != null) {
temp = temp/1000;
temp = temp + 'K';
$('.foo').css("display", "inline-block");
}
if (temp == undefined || temp == NaN) {
$('.foo').css("display", "none");
}
Foo еще весь набор дисплей: "NONE"
Я выбежала console.log на каждом если, а также когда temp представляет собой значение, это пройти через первуюесли и когда это NaN или нуль это пройти через второй если. Но почему ТОЛЬКОдисплей: «нет» надейся?
Заранее спасибо. - В.С.
РЕДАКТИРОВАТЬ Измененный код первой, если в первом кодовом блоке
В clarif, темп постоянно сбрасывается на новое значение выше этого, если с помощью функции .get:
var temp =this.model.get('custitem_temp');
, и это значение успешно устанавливается несколько раз. НЕКОТОРЫХ моей консоли для справки:
temp is set using .get: 80000
temp inside FIRST IF: 80000
temp is set using .get: undefined
temp inside FIRST IF: undefined
temp is set using .get: undefined
temp inside FIRST IF: undefined
temp is set using .get: 80000
temp inside FIRST IF: 80000
temp is set using .get: undefined
temp inside FIRST IF: undefined
temp is set using .get: 80000
temp inside FIRST IF: 80000
temp is set using .get: undefined
...
и так далее.
EDIT02:
Спасибо за вашу помощь. Поэтому из предложений, мой код теперь разделив неопределенную и значения
if (temp === undefined || temp === null) {
console.log("temp (should be undefined): " + temp)
console.log("inside IF");;
$('.foo').css("display", "none");
}
else {
console.log("temp (should be a value): " + temp)
console.log("inside ELSE: " + temp);
temp = temp/1000;
temp = temp + 'K';
$('.foo').css("display", "inline-block");
console.log("after ELSE: " + temp);
}
и консольных отражает:
temp (should be a value): 80000
inside ELSE: 80000
after ELSE: 80K
temp (should be undefined): undefined
inside IF
temp (should be undefined): undefined
inside IF
temp (should be a value): 80000
inside ELSE: 80000
after ELSE: 80K
...
Тем не менее, я до сих пор получаю дисплей: нет; на обув
EDIT 03:
Я добавил console.log для вывода значения дисплея:
if (temp === undefined || temp === null) {
console.log("temp (should be undefined): " + temp)
console.log("inside IF");
$('.foo').css("display", "none");
console.log("display value: " + $('.foo').css('display'));
}
else {
console.log("temp (should be a value): " + temp)
console.log("inside ELSE: " + temp);
temp = temp/1000;
temp = temp + 'K';
$('.foo').css("display", "inline-block");
console.log("after ELSE: " + temp);
console.log("display value: " + $('.foo').css('display'));
}
Мой журнал консоли дает некоторую интересную информацию: начинается, как и раньше, за исключением того, говоря, что значение дисплея неопределенные
temp (should be a value): 80000
inside ELSE: 80000
after ELSE: 80K
display value: undefined
temp (should be undefined): undefined
inside IF
display value: undefined
temp (should be undefined): undefined
inside IF
, но затем после примерно 9 циклов она начинает присвоения значения дисплея:
temp (should be a value): 80000
inside ELSE: 80000
after ELSE: 80K
display value: undefined
temp (should be undefined): undefined
inside IF
display value: none
temp (should be undefined): undefined
inside IF
display value: none
temp (should be a value): 80000
inside ELSE: 80000
after ELSE: 80K
display value: block
temp (should be undefined): undefined
inside IF
display value: none
Любые объяснения?
где вы назначаете значение 'temp'? –
Связано ли это с функцией '.ready()'? –
'var temp;' устанавливает значение 'temp' как' null'. (если вы не назначили значение в промежутке). –