数组中的逗号用作值。 cookie中的数组

时间:2012-11-07 22:16:25

标签: javascript jquery arrays cookies escaping

($.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");
}};

1 个答案:

答案 0 :(得分: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++;
});