很抱歉打扰您,但我已经花了两个小时来解决这个问题。问题是我的代码只添加了一个元素,但没有添加其他id,写的是“已经有”
$(function(){
$(".js-compare-add").click(function(){
var item_id = $(this).data('id');
if(Cookies.get('compare_id_list')){
var compareListStr = Cookies.get('compare_id_list');
var compareListArr = compareListStr ? compareListStr.split(',') : [];
if (compareListArr.indexOf(item_id) > -1) {
compareListArr.push(item_id);
Cookies.set('compare_id_list', compareListArr.join(','), {expires: 10});
alert('Save! ' + item_id);
} else {
alert('already have ' + item_id);
}
} else {
alert('There was no list, we created it and added this position ' + item_id);
Cookies.set('compare_id_list', item_id);
}
});
});
以防万一 - 我用它来做 cookies https://github.com/js-cookie/js-cookie if (jQuery.inArray(item_id,compareListArr) === -1) 也没有帮助
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
戴夫·牛顿提出了一个有用的观点,逻辑似乎落后,但如果这是你尝试让它工作的结果:
当您使用
data函数时,jQuery 会进行数据操作,它不仅仅为您提供匹配的data-id属性的字符串值。如果属性的文本都是数字,jQuery 会将其转换为数字:const id = $("#example").data("id"); console.log(typeof id); // number