我使用以下代码在cookie上写,它在所有浏览器上运行良好,除了ie8:
var x = $.cookie(printedcookie); //991_0|590_0|995_0|996_0|564_0
var y = $.cookie(cookie); // 991~1.20~/assets/img1.jpg|564~1.50~/assets/img2.jpg|201~1.10~/assets/img3.jpg|999~1.20~/assets/img4.jpg
var needles = x.split('|')
var haystack = y.split('|');
var newArray = $(haystack).filter(function (value) {
for (var ii=0; ii<needles.length; ii++) {
var needle = needles[ii].split('_')[0];
var needleRegex = new RegExp("^" + needle);
if(value.match(needleRegex)) {
return false;
}
}
return true;
});
$.cookie(cookie,newArray.join('|'),{ path: '/' , domain:domain, expires:365 });
我期待最终的输出是:
201~1.10~/assets/img3.jpg|999~1.20~/assets/img4.jpg
我想要实现的是:检查var x中每个项目的第一部分是否包含在y中。如果是,请将此值与剩余位一起删除。
非常感谢任何帮助
答案 0 :(得分:0)
IE抛出错误:错误:对象不支持属性或方法'match'
代替.match(),你应该使用其他替代函数,比如
contains(),
hasClass(),
等......根据你的逻辑。