alert(x)为false。但由于某种原因,它不会进入if语句?有什么想法吗?
HTML
@{bool x = false;
foreach (var c in Model.Cleaner.TimeConfirmations.Where(l => l.date.ToShortDateString() == DateTime.Now.ToShortDateString() || l.date.ToShortDateString() == DateTime.Now.AddDays(1).ToShortDateString()))
{
x = true;
}
<span class="ifAvailable" data-confirmationchecker="@x" value="15">@x</span>
}
Jquery的
var x = $(".ifAvailable").data('confirmationchecker')
alert(x);
if ( x == false) {
alert("hi")
}
答案 0 :(得分:6)
data- *属性由两部分组成:
- 属性名称不应包含任何大写字母,并且必须至少在前缀“data - ”之后的一个字符
- 属性值可以是任何字符串
醇>
所以你要将字符串“false”与Boolean false进行比较,这是不一样的。
而不是
if (x == false)
使用
if (x == "false")
或者,您可以使用this technique:
var x = ($(".ifAvailable").data('confirmationchecker') == "true");
alert(x);
if ( x == false) {
alert("hi")
}
答案 1 :(得分:1)
你的x是一个字符串,将值转换为布尔值,然后进行检查
var x = $(".ifAvailable").data('confirmationchecker')
alert(x);
if (JSON.parse(x) == false) {
alert("hi")
}
答案 2 :(得分:0)
似乎x的值是“false”字符串类型,请尝试:
if ( x == "false") {
alert("hi")
}
或将变量x转换为bool类型。