【问题标题】:Any ideas on what is wrong with this javascript code?关于这个javascript代码有什么问题的任何想法?
【发布时间】:2010-11-13 11:32:48
【问题描述】:

我有下面的代码。代码的目的是获取存储在本地存储中的所有值,并将它们显示在两个 HTML 元素中,分别为'title''textLoc'ids。 'title'<input type="text">'textLoc'<textarea>。我希望将值存储在<textarea> 中,并将密钥存储在<input type="text"> 中。值被正确存储,但键没有。关于为什么会这样的任何想法?

var tests = [];
var titles = [];

var finalTests = "";

var key, value;
for (var i = 0; i < localStorage.length; i++) {
  key = localStorage.key(i);
  value = localStorage.getItem(key);
  tests.push(value);
  titles.push(key);
  finalTests += "<tr><td><a class=\"dashlinks\" href=\"javascript:void\" onclick=\"rememberTest("+i+")\">" + key + "</a></td></tr>";
}

for (i=0; i<tests.length; i++) {
document.getElementById('title').innerHTML = titles[i];

document.getElementById('textLoc').innerHTML = tests[i];
}

【问题讨论】:

  • 我很好奇你想用底部的循环做什么。每次通过循环它都会替换这些项目的 innerHTML,所以您将看到的只是最后一个。
  • 是的,您每次都在替换值。可能你想追加?
  • @rob 这只是显示代码实际作用的一种非常小的方式。它还经历了许多其他代码,这只是总结它的最简单方法。相信我,它非常有用。
  • @aip.cd.aish 我的意思是每次都替换值。

标签: javascript debugging local-storage


【解决方案1】:

您应该使用document.getElementById('title').valuedocument.getElementById('textLoc').value。此外,在您存储 finalTests 之后,您似乎什么也没做。

【讨论】:

  • 啊...谢谢,哇,没看到那个。 finalTests 稍后使用。这段代码只是一堆代码的sn-p。
【解决方案2】:

您应该将字符串附加到文本区域:

document.getElementById('title').innerHTML = document.getElementById('title').innerHTML + titles[i] + '\n';  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 2013-01-16
    • 1970-01-01
    • 2011-06-01
    相关资源
    最近更新 更多