首页 文章

localStorage存储HTMLTextAreaElement而不是value

提问于
浏览
0

我有一个33 textareas的页面,如果用户填写任何一个,我想存储它们,但也在localStorage的列表/数组中留下空格,这意味着,如果你使用条目0,只有条目33,31他们在中间是空的,因为他们的位置很重要 . 我取得了一些进展,我得到的最好的就是这个剧本:

var cells = 33;

function savePlanner() {
    for (i = 0; i < cells; i++) {
        localStorage.setItem('planner', document.getElementsByTagName('textarea')[i]);
    }
}

savePlanner 函数在 HTML 文件中按钮标记的 onclick 上调用 .

<div class="content-output"><textarea></textarea></div>
        <table class="u-full-width">
        <thead>
            <tr>
                <th>Hour</th>
                <th>Activity</th>
                <th>Note</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><textarea id="hour" class="user-input"></textarea></td>
                <td><textarea class="user-input"></textarea></td>
                <td><textarea class="user-input"></textarea></td>
            </tr>
            <tr>
                <td><textarea id="hour" class="user-input"></textarea></td>
                <td><textarea class="user-input"></textarea></td>
                <td><textarea class="user-input"></textarea></td>
            </tr>
            <tr>
                <td><textarea id="hour" class="user-input"></textarea></td>
                <td><textarea class="user-input"></textarea></td>
                <td><textarea class="user-input"></textarea></td>
            </tr>

这些 textarea 重复了11次,由于它们有3列,我有33个条目 .

但是,如果我使用 document.getElementsByTagName('textarea')[i] ,我得到的是 HTMLTextAreaElement ,如果我将 value 连接到它,它就不会存储任何内容,即使我的某些 textareas 已被填充 . 我在这里想念的是什么?

1 回答

  • 1
    localStorage.setItem('planner', document.getElementsByTagName('textarea')[i]);
    

    将HTMLTextAreaElement粘贴到存储中并且localStorge只能存储字符串,HTMLTextAreaElement上的getString方法将返回HTMLTextAreaElement .

    你要

    document.getElementsByTagName('textarea')[i].value
    

    这是文本区域的值,而不是DOM元素 .

相关问题