0

($.cookie('cIDlist")是一个看起来像这样的数组:2, 0, 1, 2, 4.

该函数按预期工作,但不知何故,该函数imageToSlotNr()同时使用整数和逗号作为值。如何让它忽略分隔符或逗号或仅删除逗号?为什么会发生这种情况?

$("#vkorzinu").click(function(){
    SLOTNUM = 1;
    $.each($.cookie('cIDlist'), function(){
        imageToSlotNr(this);
        SLOTNUM++;
    });
});

function imageToSlotNr(idnum){
  if(SLOTNUM<9){
  $("#slot"+SLOTNUM).css({"backgroundImage":"url('http://localhost/musli/"+idnum+"ingrid.png'    )","background-size":"70px"});
  } else {
       alert("full");
}};
4

1 回答 1

1

$.each正在迭代字符串中的字符。

您需要在迭代之前转换为数组。将其解析为 JSON 在这里很有用。

var arr = $.parseJSON("[" + $.cookie('cIDlist') + "]");

$.each(arr, function(){
    imageToSlotNr(this);
    SLOTNUM++;
});

如果您希望将数字作为字符串,您可以使用.split()而不是将其解析为 JSON 数据。

var arr = $.cookie('cIDlist').split(/\s*,\s*/);

$.each(arr, function(){
    imageToSlotNr(this);
    SLOTNUM++;
});
于 2012-11-07T22:19:09.213 回答