function setL(sname, svalue) {
localStorage.setItem(sname, svalue)
}
function getL(sname) {
if (!localStorage.getItem(sname)) localStorage.setItem(sname, "")
return localStorage.getItem(sname)
}
function delL(sname) {
localStorage.removeItem(sname)
}
for (i = 0; i < options.length; i++) {
if (getL(options[i]) == null) {} else {
$("#" + options[i]).attr("value", getL(options[i]));
$(options_target[i]).css(options_change[i], getL(options[i]));
}
};
getL
获取localstorage
的价值。所以我的循环是做什么的,对于
var options = ["bg_color", "bottom_bar_color", "button_color", "dialog_color", "notify_color", "button_text_color"];
var options_target = ["body", "#bottom", ".ugly-button", ".dialog", ".notification .notification-body", ".ugly-button"];
var options_change = ["background", "background", "background", "background", "color"];
它使用&#34;选项&#34;为相应的元素设置适当的css值。数组的值被设置为localstorage ..
这曾经在一天前工作..但现在我收到一个意想不到的错误..这是
未捕获的TypeError:无法读取属性&#39;替换&#39;未定义的
我的代码中没有替换,所以任何人都可以帮助我调试代码并在可能的情况下修复它吗?
答案 0 :(得分:1)
var options = ["bg_color", "bottom_bar_color", "button_color", "dialog_color", "notify_color", "button_text_color"];
var options_target = ["body", "#bottom", ".ugly-button", ".dialog", ".notification .notification-body", ".ugly-button"];
var options_change = ["background", "background", "background", "background", "color"];
选项长度为6。 options_target长度为7。 options_change长度为5.
所以:我从0到5。
$(options_target[i]).css(options_change[i], getL(options[i]));
当我5岁时: options [i]有值,options_change [i]未定义,因为它超出了范围......
答案 1 :(得分:0)
JQuery 1.6.4
运行您的代码。
JQuery 2.1.3
会出现上述错误。
如果你最近确实更新了JQuery,那很可能是你的问题。
奇怪的是它与早期的JQuery一起工作,因为你的错误是你的最后一个列表与前两个列表的长度不同。因此,当循环遍历第一个列表时,您尝试访问不存在的options_change
的inde。例如,尝试push
"color"
options_change
var options = ["bg_color","bottom_bar_color","button_color","dialog_color","notify_color","button_text_color"];
var options_target = ["body","#bottom",".ugly-button",".dialog",".notification .notification-body",".ugly-button"];
var options_change = ["background","background","background","background","color", "color"];
function setL(sname, svalue) {
localStorage.setItem(sname, svalue)
}
function getL(sname) {
if(!localStorage.getItem(sname)) localStorage.setItem(sname, "")
return localStorage.getItem(sname)
}
function delL(sname) {
localStorage.removeItem(sname)
}
for(i = 0; i < options.length;i++){
if(getL(options[i]) == null){
} else {
$("#" + options[i]).attr("value" , getL(options[i]) );
$(options_target[i]).css(options_change[i] , getL(options[i]) );
}
};
alert("No Errors!");
,它可以正常运行:
{{1}}