在for循环jQuery中使用Hashids

时间:2015-08-04 12:46:30

标签: jquery hashids

我正在尝试使用hashids插件在for循环中散列ticket_id

for (var i = 0; i < result.length; i++) {
    var hashids = new Hashids("", 5);
    var id = hashids.encode(result[i].ticket_id);
    console.log(hashids);
    [...]

    html += '<tr class="ticketClick" data-url="' + baseURL + id>' [...]
}

表格的HTML是根据ajax调用传递的result动态生成的。单击表格行时,我会重定向到data-url属性中的url。

问题是hashids没有运行,因此id没有附加到url。

hashids的控制台日志产生:

Hashids {version: "1.0.2", minAlphabetLength: 16, sepDiv: 3.5, guardDiv: 12, errorAlphabetLength: "error: alphabet must contain at least X unique characters"…}

我搜索过该错误并没有找到任何内容......

我觉得奇怪的是,如果我将一个整数直接传递给hashids方法,如:

var id = hashids.encode(20);

编码工作并返回预期的哈希值。

result[i].ticket_id的console.log返回预期的整数,因此for循环正在正常工作。在new Hashids()循环之外声明for似乎没有什么区别。所以我不确定这里出了什么问题。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

问题是由于Ajax函数以JSON格式提取数据引起的。

解决方案

将值解析为整数: parseId(result[i].ticket_id)