如果jquery中的语句不起作用

New*_*bie 4 c# asp.net-mvc jquery

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>
           }
Run Code Online (Sandbox Code Playgroud)

jQuery的

var x = $(".ifAvailable").data('confirmationchecker')
alert(x);
if ( x == false) {
    alert("hi")
}
Run Code Online (Sandbox Code Playgroud)

Joh*_* Wu 6

数据属性只能包含字符串:

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

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

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

代替

if (x == false)
Run Code Online (Sandbox Code Playgroud)

使用

if (x == "false")
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用此技术:

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