Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:无法设置属性';innerHTML';空的_Javascript_Android_Jquery_Arrays_Local Storage - Fatal编程技术网

Javascript 未捕获类型错误:无法设置属性';innerHTML';空的

Javascript 未捕获类型错误:无法设置属性';innerHTML';空的,javascript,android,jquery,arrays,local-storage,Javascript,Android,Jquery,Arrays,Local Storage,我正在使用phonegap-1.4.1为android制作一个条形码扫描应用程序。我需要定义一个n数组code[],它可以存储所有扫描的条形码文本,我需要定义一个变量k,它作为计数器,在每次扫描后递增1,这样我就可以在code[k]中存储详细信息。这是我之前的javascript文件,我在其中定义了一个数组和一个变量计数器 localStorage["counter"]=0; var code = new Array(100); localStorage.setIt

我正在使用phonegap-1.4.1为android制作一个条形码扫描应用程序。我需要定义一个n数组
code[]
,它可以存储所有扫描的条形码文本,我需要定义一个变量
k
,它作为计数器,在每次扫描后递增1,这样我就可以在
code[k]
中存储详细信息。这是我之前的javascript文件,我在其中定义了一个数组和一个变量计数器

     localStorage["counter"]=0;
     var code = new Array(100);
     localStorage.setItem("code", JSON.stringify(code));
这是我的另一个js文件,我在其中调用存储的数组,并将存储在该数组中的值打印为
“id”
myvalue1
是从扫描中获得的条形码文本

   var barcodeVal = localStorage.getItem("myvalue1");
   var test2 = localStorage.getItem("code");
   code = JSON.parse(test2);
   var k = parseInt(localStorage.getItem("counter"));
   code[k] = "code[k]";
   document.getElementById(code[k]).innerHTML = barcodeVal;
   k = k + 1;
   localStorage["counter"]=k;
   localStorage.setItem("code", JSON.stringify(code));
我一次又一次地调用条形码扫描功能。这就是为什么我使用数组来存储扫描的条形码数据。这是我的扫描js文件,它给出了
myvalue1

 <script type="text/javascript">
  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';

          }, function (error) {
              alert("Scan failed: " + error);
       });
  }

var scanCode=函数(){
window.plugins.barcodeScanner.scan(
功能(结果){
警报(“扫描代码:“+result.text+”。格式:“+result.Format+”。取消:“+result.Cancelled”);
setItem(“myvalue1”,result.text);
window.location.href='page5.html';
},函数(错误){
警报(“扫描失败:+错误”);
});
}


我得到的错误是
未捕获类型错误:无法将属性'innerHTML'设置为null
。我不熟悉phonegap和编码。请任何人帮我解决这个问题。提前感谢。

您不需要跟踪变量
k
。 您可以使用下面的脚本简单地管理所有条形码值

请检查下面的JSFIDLE…运行两次,您可以看到差异


函数SaveDataToLocalStorage(条形码值)
{
var oldItems=JSON.parse(localStorage.getItem('barcode'))| |[];
var newItem={
“条形码”:条形码值
};
oldItems.push(newItem);
localStorage.setItem('barcode',JSON.stringify(oldItems));
}
保存数据到本地存储(“123456879FFGG”);

但对于like,我将扫描15-20个条形码。那么我会使用数组来存储它吗?我认为我有innerHTML的错误,所以我用jQuery替换了它,比如
$(“#code[k]”)
可以将id存储在其中,我将提供html直接访问权限,比如
id=code[0]
等等。但它不起作用。这种代码可能吗?如果你想使用localstorage,那么我的回答对你很有帮助。你可以存储n个条形码。若要显示,可以检查JSFIDDLE,只需读取代码数组中的oldItems并简单地显示在表中即可。
<script>
function SaveDataToLocalStorage(barcodeValue)
{

    var oldItems = JSON.parse(localStorage.getItem('barcodes')) || [];
    var newItem = {
        'barcode': barcodeValue
    };
    oldItems.push(newItem);
    localStorage.setItem('barcodes', JSON.stringify(oldItems));

}
SaveDataToLocalStorage("123456879FFGG");
</script>