繁体   English   中英

如果jquery中的语句不起作用

[英]if statement in jquery Isn't working

alert(x)是假的。 但由于某种原因,它不会进入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")
}

数据属性只能包含字符串

data- *属性由两部分组成:

  1. 属性名称不应包含任何大写字母,并且必须至少在前缀“data-”之后一个字符。
  2. 属性值可以是任何字符串

所以你要将字符串“false”与布尔值 false进行比较,它们不相同。

代替

if (x == false)

使用

if (x == "false")

或者,您可以使用此技术

var x = ($(".ifAvailable").data('confirmationchecker') == "true");
alert(x);
if ( x == false) {
    alert("hi")
}

你的x是一个字符串,将值转换为布尔值,然后进行检查

var x = $(".ifAvailable").data('confirmationchecker')
alert(x);
if (JSON.parse(x) == false) {
    alert("hi")
} 

如何在JavaScript中将字符串转换为布尔值?

似乎x的值是“false”字符串类型,请尝试:

if ( x == "false") {
    alert("hi")
}

或者将变量x转换为bool类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM