首页 > 解决方案 > 如何在本地存储中存储字母而不是 Javascript 中的点击计数?

问题描述

我正在创建一些动态控件,我希望从本地存储中为其分配 Id。它工作正常,但我希望将字母(例如 A,B)分配给新创建的控件,而不是新数字。是否可以通过javascript实现?

function nextNumber() {
  if (typeof (Storage) !== "undefined") {
    if (localStorage.clickcount) {
      localStorage.clickcount = Number(localStorage.clickcount) + 1;
    } else {
      localStorage.clickcount = 1;
    }
    Increment = localStorage.clickcount;

  } else {

  }
}

elem.setAttributeNS(null, "id", "ID " + Increment)//assigning id

标签: javascriptlocal-storage

解决方案


这是一个未经验证的示例,您如何做到这一点:

function nextNumber() {
  if (typeof (Storage) !== "undefined") {
    if (localStorage.clickcount) {
      var indx = localStorage.clickcount.charCodeAt(0) - 65; // Get ascii value from char
      localStorage.clickcount = String.fromCharCode(indx + 1);
    } else {
      localStorage.clickcount = "A"; // "A" has ascii value 65
    }
    Increment = localStorage.clickcount;

  } else {

  }
}

elem.setAttributeNS(null, "id", "ID " + Increment) //assigning id

基本上你应该使用 65 以上的数字(这些代表从 A 开始的字符的 ASCII 值)。考虑到这一点,当您存储初始计数器时,它应该指向“A”,因此它是 65。当递增时,您应该将该字符转换回 ASCII 值,将其递增 1 并转换回字符。


推荐阅读