在localStorage中存储ID值,并将值与元素ID匹配以添加/删除类。
我的问题是第一次显示页面时匹配正常(当匹配时应用类,不匹配时忽略)。但是,在显示具有匹配的页面并且应用该类后,没有匹配的页面的后续视图显示该类未正确应用。
以下是导致我悲伤的代码部分。
follows = JSON.parse(localStorage.getItem('follows')) || [];
$.each(follows, function(key, value) {
alert(value);
if (value === $('a.followButtonPage').attr("id")) {
alert('matched: ' + value);
$('a[id="' + value + '"]').removeClass("follow").addClass("unfollow");
}
});
我在页面显示上运行代码并包装在一个函数中(应该等到DOM完全加载):
$(document).on("pageshow", "#archive", function(e) {
$( function() { …
提前感谢您的帮助和指导。打开完全不同的方法 - 解决这个问题的任何方法。
更新:下面推荐的代码(虽然是一种更好的方法)会导致相同的行为(因此仍在搜索分辨率。
$.each(follows, function(key, value) {
$('#' + value ).removeClass("follow").addClass("unfollow");
});
答案 0 :(得分:0)
这条件不仅不会检查你想要的东西,而且完全没必要。所有你需要的是:
$.each(follows, function(key, value) {
$('#' + value ).removeClass("follow").addClass("unfollow");
});
由于您按ID $('#' + value )
定位元素就足够了,因为ID在文档中应该是唯一的。并且检查是否存在匹配元素是由jQuery隐式完成的,所以如果没有匹配,它将默默地做任何事情。