【问题标题】:retrieving local storage items with random number added to the key检索添加到密钥的随机数的本地存储项
【发布时间】:2019-04-23 21:17:04
【问题描述】:

在购物车中,我将产品添加到本地存储中,这样当付款失败时,客户可以单击一个按钮,然后重新填充购物车,以便他们再次尝试。

我使用这些代码添加到本地存储:

  $( ".terms-conditions" ).click(function() {
    localStorage.setItem('LinkURL' + ranNr, rdsLinkURL);
    localStorage.setItem('LinkTitle' + ranNr, rdsLinkTitle);
    localStorage.setItem('LinkOrderURL' + ranNr, rdsLinkOrderURL);
    localStorage.setItem('OrderAmount' + ranNr, rdsOrderAmount);
  });

这些代码在 $('.rdsubs-cart-name').each 方法中,并保存在 LocalStorage 中,每个项目都很好地分组在自己的编号下。但是现在我想检索它,并且此检索发生在一个新网页上,因此我无法使用:

$( ".btn-repopulate-shopping-cart" ).click(function() {
  console.log(localStorage.getItem('LinkURL' + ranNr));
});

因为ranNr 没有定义。所以我在想我们不能检索所有的键值LinkURL开始。

所以以上就是目标,为了实现目标,我已经尝试了几件事,但无济于事。

console.log(localStorage.getItem([^='LinkURL'])); console.log(localStorage.getItem('LinkURL*')); console.log(localStorage.getItem([^'LinkURL*']));

【问题讨论】:

    标签: jquery local-storage


    【解决方案1】:

    您可以使用Object.keysArray.filterString.startsWith,如下所示

    localStorage.setItem('LinkURL1', "abc"); 
    localStorage.setItem('LinkURL2', "def"); 
    
    let result = Object.keys(localStorage).filter(v => v.startsWith("LinkURL"));
    console.log(result); // ["LinkURL1", "LinkURL2"]
    
    result.forEach(k => console.log(localStorage.getItem(k))); // paints abc and def
    

    【讨论】:

    • 我只是想要求检索结果。感谢您的更新。马上去测试!
    • 这是完美的工作我将阅读您提供的超级有用的链接。并且立即拥有工作代码会更好。非常感谢!
    • @purple11111 - 很高兴为您提供帮助!
    • 如果你想同时输出链接网址和订单金额怎么办?
    • @purple11111 - 不清楚您的问题。你能帮我举个例子吗?
    【解决方案2】:

    我不知道如何使用 Jquery 做到这一点,但我会尝试在 javascript 中提供解决方案。希望对你有所帮助。

    let allKeys = Object.keys(localStorage);
    let filteredKeys = allKeys.filter(key => key.startsWith("LinkURL"));
    let filteredValues = filteredKeys.map(filteredKey => 
    localStorage.getItem(filteredKey))
    

    这里 allKeys 将是键数组,即字符串数组。 而filteredKeys 是键的数组(以LinkURL 开头)。 filtersValues 是数组 filtersKeys 对应的所有值组成的数组。

    【讨论】:

    • 很高兴也看到了一种 javascript 方式。如果你也可以让它显示值,因为它现在只显示键,那就太好了。但是感谢您的帮助。不过,我将接受 Nikhil 的回答。但你绝对值得一票!
    • 谢谢老兄,我认为您可以从键中挖掘出值。但我现在要编辑。
    猜你喜欢
    • 2017-03-07
    • 2017-11-20
    • 2023-03-08
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多