如何在数组中存储值

时间:2014-06-27 10:06:32

标签: javascript jquery html arrays

在下面的代码中,我获得了条形码的扫描值。

var scanCode = function () {
window.plugins.barcodeScanner.scan(function(result) {
    alert("Scanned Code: " + result.text + ". Format: " + result.format + ". Cancelled: " + result.cancelled);
    localStorage.setItem("myvalue1", result.text);
    window.location.href = 'page5.html';
    var barcodeVal = localStorage.getItem("myvalue1");
    var test2 = localStorage.getItem("code");
    code = JSON.parse(test2);
    var k = parseInt(localStorage.getItem("counter"));
    document.getElementById(code[k]).innerHTML = barcodeVal;
    alert(code[k]);
    alert(k);
    k++;
    localStorage["counter"] = k;
    localStorage.setItem("code", JSON.stringify(code));
}, function (error) {
    alert("Scan failed: " + error);
});

myvalue1是我从扫描中获得的价值。我在另一个js文件中定义了一个数组和一个计数器

localStorage["counter"]=0;
var code = {};
localStorage.setItem("code", JSON.stringify(code));

现在我正在尝试将ID存储在数组code[]中,我正在尝试在page5.html中打印它。以上<script>也在同一page5.html中定义。此外,我一次又一次调用扫描功能,以扫描多个条形码。我打印html中的值为

<tr>
    <td>2</td>
    <td id="code[0]"></td>
</tr>

我收到的错误为Cannot set property 'innerHTML' of null。我接下来该怎么办?请帮我。提前谢谢

1 个答案:

答案 0 :(得分:1)

当您在指令中执行代码[k]时,您可以从JsFiddle here看到

document.getElementById(code[k]).innerHTML = barcodeVal;

代码不是被理解为一个字符串数组,而是一个字符串,所以在代码[0]中,它不会指向你的id,而是指向括号。

在您的代码上执行JSON.parse(),如更新后的JsFiddle here