這其實已經很少做,你通過一個數字串對jQuery插件的cookie,但事實上,因爲即使你通過文字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
有一個CLU E在the plugin's source:
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
和
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
Cookie的名稱/值對都是 「字符串」。
這是正確的。 '1'是一個字符串。 1是一個數字。 – quest 2011-05-23 02:35:44
正如我在下面的其他答案中所說的那樣,總是在'parseInt'中使用radix參數,這會讓Javascript猜測出您想要解析的數字的基礎是一種糟糕的做法。 – HoLyVieR 2011-05-23 02:54:56
幸運的是,這是一個普遍的事實。像ruby/js/python等語言將有相同的問題。您可以隨時使用螢火蟲console.log輸出並查看對象的類型。 – 2011-05-23 04:00:22