На самом деле это очень мало связано с тем, что вы передали числовую строку плагину cookie jQuery, потому что даже если вы передали литерал 1
, он не будет иметь очень долго оставался без струн!
Значения cookie хранятся внутри, по сути, в виде строк. Это значение входит в заголовки HTTP и проходит через браузер конечного пользователя и, как таковое, далеко от системы типов Javascript.
К счастью, поскольку Javascript динамически типизирован, это не должно иметь значения. Если значение является числовым в представлении, вы можете преобразовать его обратно в числовой тип:
var value = $.cookie('name');
alert(parseInt(value, 10)); // note: specify the radix!
Тем не менее, я бы не стал беспокоиться, так как вы собираетесь объединить его обратно в строку:
var $el = $('#main li:eq(' + value + ')');
Или, чтобы использовать эффективность в современных браузерах, вы можете сделать:
var $el = $('#main li').eq(parseInt(value, 10)); // I recommend this version
Есть подсказка в источнике плагина :
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
и
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
Все пары «имя файла / значение» являются «строками».