我有一个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 回答
将HTMLTextAreaElement粘贴到存储中并且localStorge只能存储字符串,HTMLTextAreaElement上的getString方法将返回HTMLTextAreaElement .
你要
这是文本区域的值,而不是DOM元素 .