2017-03-09 49 views
5

當給定的cookie不存在,其結果必然是不確定,但在這種情況下favouritescook不存在,但該腳本認爲它。Jquery的餅乾未檢測到沒有存在

結果必須爲「OK Detect」爲null或未定義,但結果爲「BAD no detect result」。爲什麼這不起作用?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script> 
<script> 
actcookies=jQuery.cookie("favouritescook"); 
function fav(id) 
{ 
    if (actcookies=='undefined' || actcookies=='null') 
    { 
     alert("OK detect"); 
    } 
    else 
    { 
     alert("BAD Not detect Result : "+actcookies); 
    } 
} 
</script> 

<div onclick="fav(1);">Test Now 1</div> 

我試過在不同的瀏覽器中使用過,結果相同。我不明白這一點。

+1

你的條件是錯誤的。 –

+1

不知道爲什麼你得到一個downvote。你的語法有點粗糙,但很顯然你不是以英語爲母語的人。你不應該爲此付出代價。你的問題很好。 – samanime

+0

你正在使用哪個版本的jscookie? – user7417866

回答

1

不會返回undefined你需要改變你的控制器

if (typeof actcookies=='undefined' || !actcookies) 
{ 
    alert("OK detect"); 
} 
else 
{ 
    alert("BAD Not detect Result : "+actcookies); 
} 
+1

實際上,一個值可以是未定義的。雖然你如何做是正確的,你也可以檢查它,而不使用'typeof'。另外,使用'!'運算符實際上改變了他正在做的一些事情,因爲如果它是'0'或'false',那麼也是如此,而不僅僅是null。 – samanime

+0

是的問題被放在('')爲此我需要放在我的引號,並把只有未定義或null爲真或假,這是我的錯誤,問候 – Mario

2

問題是,它不等於串'undefined'或字符串'null',它匹配的值undefinednull,沒有引號('')。

溝引號,它應該工作得很好。

0

這應該工作

actcookies=jQuery.cookie("favouritescook"); 
function fav(id) 
{ 
    if (actcookies==undefined || actcookies==null) 
    { 
     alert("OK detect"); 
    } 
    else 
    { 
     alert("BAD Not detect Result : "+actcookies); 
    } 
}