Как я могу проверить, был ли установлен cookie с помощью jQuery? - PullRequest
1 голос
/ 26 февраля 2012

Я использую следующий код:

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

Это работает, если cookie уже был установлен.Но как я могу сделать href по умолчанию, если cookie еще не был установлен

Ответы [ 4 ]

5 голосов
/ 26 февраля 2012

Странно видеть здесь предложения для троичного оператора, в котором первое значение совпадает с условием.Сократите его до:

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

Вы всегда можете уменьшить троичное выражение A ? A : B до более простого A || B

1 голос
/ 26 февраля 2012

Вы можете использовать троичную операцию , которая по сути является оператором 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);
0 голосов
/ 26 февраля 2012

Проверьте, существует ли он:

if ($.cookie('jquery-ui-theme') != null) {
  $('#theme').attr('href', $.cookie("jquery-ui-theme"));
} else {
  $('#theme').attr('href', 'default');
}
0 голосов
/ 26 февраля 2012

Я не знаком с вашим плагином cookie, но просто использую троичный оператор (и при необходимости измените этот код для вашего плагина):

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

См. Также: Приоритет оператора с троичным оператором Javascript

...