如何检查是否已使用jQuery设置cookie?

时间:2012-02-26 06:23:37

标签: jquery cookies jquery-cookie

我使用以下代码:

$('#theme').attr('href', $.cookie("jquery-ui-theme"));

如果已经设置了cookie,则此方法有效。但是,如果cookie尚未成为

,我如何制作默认的href

4 个答案:

答案 0 :(得分:5)

很奇怪这里有一个三元运算符的建议,其中第一个值与条件相同。缩短为:

$('#theme').attr('href', $.cookie('jquery-ui-theme') || "default");

您始终可以将三元表达式A ? A : B简化为更简单的A || B

答案 1 :(得分:1)

您可以使用ternary operation,它本质上是一个适合一行的if语句。它们的结构如下:

  

表达? valueIfTrue:valueIfFalse;

我倾向于在这种情况下使用它们,如果没有设置某些东西你想要一个默认值。

var href = $.cookie("jquery-ui-theme") ? $.cookie("jquery-ui-theme") : 'http://www.example.com';
$('#theme').attr('href', href);

这相当于:

var href = $.cookie("jquery-ui-theme");
if (!href) {
    href = 'http://www.example.com';
}
$('#theme').attr('href', href);

答案 2 :(得分:0)

我不熟悉你的cookie插件,但只使用三元运算符(如果需要,可以为你的插件修改这段代码):

$('#theme').attr('href', ($.cookie('jquery-ui-theme')!='') ? $.cookie('jquery-ui-theme') : 'your-default-value'))

另请参阅:Operator precedence with Javascript Ternary operator

答案 3 :(得分:0)

检查它是否存在:

if ($.cookie('jquery-ui-theme') != null) {
  $('#theme').attr('href', $.cookie("jquery-ui-theme"));
} else {
  $('#theme').attr('href', 'default');
}