Heim  >  Fragen und Antworten  >  Hauptteil

Der Prozess zur Bestimmung, ob ein Element in einem Array vorhanden ist, ist ungültig

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

P粉204136428P粉204136428180 Tage vor392

Antworte allen(1)Ich werde antworten

  • P粉364129744

    P粉3641297442024-04-04 11:01:12

    戴夫·牛顿提出了一个有用的观点,逻辑似乎落后,但如果这是你尝试让它工作的结果:

    当您使用 data 函数时,jQuery 会进行数据操作,它不仅仅为您提供匹配的 data-id 属性的字符串值。如果属性的文本都是数字,jQuery 会将其转换为数字:

    const id = $("#example").data("id");
    console.log(typeof id); // number
    <div id="example" data-id="123"></div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    Antwort
    0
  • StornierenAntwort