Я использую следующий код:
$('#theme').attr('href', $.cookie("jquery-ui-theme"));
Это работает, если cookie уже был установлен.Но как я могу сделать href по умолчанию, если cookie еще не был установлен
Странно видеть здесь предложения для троичного оператора, в котором первое значение совпадает с условием.Сократите его до:
$('#theme').attr('href', $.cookie('jquery-ui-theme') || "default");
Вы всегда можете уменьшить троичное выражение A ? A : B до более простого A || B
A ? A : B
A || B
Вы можете использовать троичную операцию , которая по сути является оператором 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);
Проверьте, существует ли он:
if ($.cookie('jquery-ui-theme') != null) { $('#theme').attr('href', $.cookie("jquery-ui-theme")); } else { $('#theme').attr('href', 'default'); }
Я не знаком с вашим плагином cookie, но просто использую троичный оператор (и при необходимости измените этот код для вашего плагина):
$('#theme').attr('href', ($.cookie('jquery-ui-theme')!='') ? $.cookie('jquery-ui-theme') : 'your-default-value'))
См. Также: Приоритет оператора с троичным оператором Javascript