判斷數組中是否存在元素的過程是無效的
P粉204136428
P粉204136428 2024-04-03 13:03:54
0
1
385

很抱歉打擾您,但我已經花了兩個小時來解決這個問題。問題是我的程式碼只添加了一個元素,但沒有添加其他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) 也沒幫助

P粉204136428
P粉204136428

全部回覆(1)
P粉364129744

戴夫牛頓提出了一個有用的觀點,邏輯似乎落後,但如果這是你嘗試讓它工作的結果:

當您使用 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>
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!