2016-11-28 163 views
4

alert(x)爲false。但由於某種原因,它不會進入if語句中?有任何想法嗎?if jquery中的語句不起作用

的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

x值是一些東西,是不是假的,這樣的如果不執行,爲什麼.. – Geeky

+0

如果您想與虛假...進行比較,請將其更改爲「false」, – Geeky

回答

6

數據屬性can only contain strings

Data-用*屬性由兩個部分組成:

  1. 屬性名稱不應該包含任何大寫字母,且必須至少有一個字符的前綴之後,長「數據 - 」
  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") 
} 
+0

謝謝!它實際上並不適用於「假」,而僅僅是「假」 – Newbie

0

好像x的值是 「假」 的字符串類型,請嘗試:

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

或將您的變量x轉換爲bool類型。