搜索

首页  >  问答  >  正文

判断数组中是否存在元素的过程是无效的

很抱歉打扰您,但我已经花了两个小时来解决这个问题。问题是我的代码只添加了一个元素,但没有添加其他id,写的是“已经有”

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

$(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粉204136428P粉204136428339 天前605

全部回复(1)我来回复

  • P粉364129744

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

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

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

    1

    2

    const id = $("#example").data("id");

    console.log(typeof id); // number

    1

    2

    <div id="example" data-id="123"></div>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    回复
    0
  • 取消回复