这可能是一个简单的语法错误或类似,但我不能为我的生活看到它。我之前在更复杂的结构上使用localStorage没有问题,所以我很困惑为什么这不起作用。
$('.symbols').click(function(){
if ($(this).attr("checked") == "checked"){
setPreferences("symbols", true);
} else {
setPreferences("symbols", false);
}
});
$('.length').on('change', function() {
setPreferences("length", $(this).attr('value'));
});
function setPreferences (key, value) {
console.log("Key[ " + key + " ], Val[ " + value + "]");
localStorage[key] = value; // I've also tried "" + value
}
设置符号可以正常工作,但不存储长度。 console.log在相应的事件上打印了预期的键/值对,我可以从Chrome调试器中看到它试图分配空间 - 它在检查时就不存在了。触发事件的顺序无关紧要,只有“符号”存储正确。
从选择“长度”中选择值16时控制台打印:
Key [length],Val [16]
答案 0 :(得分:0)
这是正确的语法
$('.length').on('change', function() {
setPreferences("length", $(this).val());
});
val()
允许检索输入元素的值:http://api.jquery.com/val/
答案 1 :(得分:0)
在您的示例中,您使用'length'作为键名。但由于length已经是localstorage对象的属性,因此不能将其用作自定义关键字。 试试看,看看它是否有效:
setPreferences("customlength", $(this).val());// as suggested on other answer, better to use .val()