在下面的代码中,我获得了条形码的扫描值。
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
。我接下来该怎么办?请帮我。提前谢谢
答案 0 :(得分:1)
当您在指令中执行代码[k]时,您可以从JsFiddle here看到
document.getElementById(code[k]).innerHTML = barcodeVal;
代码不是被理解为一个字符串数组,而是一个字符串,所以在代码[0]中,它不会指向你的id,而是指向括号。
在您的代码上执行JSON.parse(),如更新后的JsFiddle here