Tut mir leid, dass ich Sie störe, aber ich habe zwei Stunden damit verbracht, das herauszufinden. Das Problem ist, dass mein Code nur ein Element hinzufügt, aber keine andere ID, es heißt „bereits vorhanden“
$(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); } }); });
Nur für den Fall – ich verwende dies für Cookies https://github.com/js-cookie/js-cookie if (jQuery.inArray(item_id,compareListArr) === -1) hilft auch nicht
戴夫·牛顿提出了一个有用的观点,逻辑似乎落后,但如果这是你尝试让它工作的结果:
当您使用
data
函数时,jQuery 会进行数据操作,它不仅仅为您提供匹配的data-id
属性的字符串值。如果属性的文本都是数字,jQuery 会将其转换为数字: