【问题标题】:How to change drag and drop item localstorage place?如何更改拖放项目的本地存储位置?
【发布时间】:2023-11-25 04:13:01
【问题描述】:

当输入一个项目时,我有一个简单的拖放系统,它使用“value”键创建一个本地存储对象。如果我用拖放事件替换此添加的项目,则会使用“其他”键创建一个新的本地存储元素并将其保存在那里,但我希望在替换项目时将其从“值”部分中删除。我怎样才能做到这一点?您可以查看 codepen 演示以进行试用。密码笔:https://codepen.io/BerkayAkgurgen/pen/ExNbZGo // 以上代码仅关于localstorage 完整代码在codepen账号上


function getLocalStorage() {
    let value;
    if (localStorage.getItem('value') === null) {
        value = [];
    } else {
        value = JSON.parse(localStorage.getItem("value"))
    }
    return value;
}

function addToLocalStorage(paragraph) {
    let value = getLocalStorage();
    value.push(paragraph);
    
    localStorage.setItem("value", JSON.stringify(value))
}

function changeAddToStorage(value) {
    localStorage.setItem("other", JSON.stringify(value))
}

function dragStart(element) {
    element.classList.add('draggable')
}

function dragEnd(element) {
    drags.forEach(function (item) {
        if (item.classList.contains('box-2')) {
            changeAddToStorage(element.innerHTML)
        }
    })
    element.classList.remove('draggable')
}

【问题讨论】:

  • 类似removeItem()?
  • removeitem() 不直接删除一个key?我想删除键中的值。例如,有一个名为“try”的键,有 3 个值,如“1”、“2”、“3”,我想对拖放的值“2”应用删除
  • 然后设置为null

标签: javascript html local-storage


【解决方案1】:

要从“值”中删除项目,请在替换项目时调用localStorage.removeItem("value")

function changeAddToStorage(value) {
    localStorage.removeItem("value")   // remove "value"
    localStorage.setItem("other", JSON.stringify(value))  // save in "other"
}

【讨论】:

  • 谢谢,我会尝试,如果正确,标记为已解决。
  • removeitem() 不直接删除一个key?我想删除键中的值。例如,有一个名为“try”的键,有 3 个值,如“1”、“2”、“3”,我想对拖放的值“2”应用删除
  • 对不起,我不明白你在问什么。也许另一位社区成员将能够提供帮助。祝你好运。