【问题标题】:if statement in jquery Isn't workingjquery中的if语句不起作用
【发布时间】:2017-04-12 19:47:38
【问题描述】:

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")
}

【问题讨论】:

  • x 值不是假的,所以这就是为什么 if 没有被执行...
  • 如果你想和假比较..考虑把它改成“假”,

标签: c# jquery asp.net-mvc


【解决方案1】:

数据属性can only contain strings

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

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

因此,您将字符串“false”与Boolean false 进行比较,它们并不相同。

代替

if (x == false)

使用

if (x == "false")

或者,您可以使用this technique

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

【讨论】:

  • 谢谢!它实际上不适用于仅作为“假”的“假”
【解决方案2】:

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

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

How can I convert a string to boolean in JavaScript?

【讨论】:

    【解决方案3】:

    好像x的值是“false”字符串类型,请试试:

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

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

    【讨论】:

      猜你喜欢
      • 2017-10-22
      • 1970-01-01
      • 2014-09-15
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多