我正在尝试使用document.cookie执行某些操作, 我检查了下面提到的一些条件:
if((!document.cookie.indexOf('cookies:all_checked') >= 0) ||
(!document.cookie.indexOf('cookies:first_and_second') != -1) ||
(!document.cookie.indexOf('cookies:first_and_third') != -1) ||
(!document.cookie.indexOf('cookies:first_only') != -1)){
createCookies();
}
在此声明之前我创建了像这样的cookie
var variable = document.cookie == 'cookies:all_checked'
麻烦就是我在尝试检查
(!document.cookie.indexOf('cookies:all_checked') >= 0)
或同样没有!马克我对这种情况的认真。如何检查是否真的设置了这个内容?
答案 0 :(得分:1)
你的问题是那个
document.cookie.indexOf('cookies:all_checked')
将返回索引,或-1
(未找到时)。
在您的示例中,它会返回0
,因为document.cookie
以您要查找的字符串开头。
然后,!0
评估为true
,0
评估为false
,true
评估为1
,>= 0
确实{ {1}}。
0
也是>= 0
。
这就是你每次都获得true
的原因。
你应该尝试:
!(document.cookie.indexOf('...') >= 0) // false
document.cookie.indexOf('...') >= 0 // true
请注意,!anyNumber
将导致true
或false
>= 0
,true
1
评估为false
和0
{1}}至>= 0
!anyNumber >= 0
因此,true
始终为var variable = document.cookie == 'cookies:all_checked'
。
作为旁注,请注意:
cookie
不设置/创建您的cookie
。
它的作用是检查'cookies:all_checked'
是否等于true
并将此结果(false
或variable
)分配给NCRAM955E/ RNCMST954E/ RNCMST957E/ test.py*
。