将id存储在数组中并使用它进行打印

时间:2014-06-27 06:36:49

标签: javascript jquery html arrays

我实际上是编码的新手。我正在尝试制作条形码扫描应用程序,它可以扫描多个条形码。所以我试图将所有数据存储在数组code[]中,然后我在html中打印数据。我已将code[]数组和不同js文件中的计数器定义为

localStorage["counter"]=0;
var code = new Array();
localStorage.setItem("code", JSON.stringify(code)); `

这是我的page5.html文件。在下面的代码中,myvalue是来自不同代码的值。问题出在myvalue1上。我试图一次又一次地调用函数来获取myvalue1的不同值并将其存储在数组code[]

<!doctype html>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script language="JavaScript" type="text/javascript" src="/js/jquery.js"></script>
        <link rel="stylesheet" href="jquery.mobile/jquery.mobile-1.0rc2.css" type="text/css" charset="utf-8" />
        <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script>
        <script type="text/javascript" src="barcodescanner.js"></script>
        <script type="text/javascript" src="main.js"></script>
    </head>

    <body>
        <div ng-controller="controller">
            <table ng-repeat="result in results">
                <tr>
                    <td>S.No</td>
                    <td>Barcode</td>
                </tr>
                <tr>
                    <td>1</td>
                    <td id="d"></td>
                </tr>
                <tr>
                    <td>2</td>
                    <td id="code[0]"></td>
                </tr>
                <tr>
                    <td>3</td>
                    <td id="code[1]"></td>
                </tr>
                <tr>
                    <td>
                        <input class="butt" type="button" value="New Scan" onclick="scanCode();" />
                    </td>
                </tr>
    </body>
    <script type="text/javascript">
        var barcodeVal = localStorage.getItem("myvalue");
        document.getElementById("d").innerHTML = barcodeVal;
    </script>
    <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';

                var barcodeVal = localStorage.getItem("myvalue1");
                var test2 = localStorage.getItem("code");
                code = JSON.parse(test2);
                var k = parseInt(localStorage.getItem("counter"));

                alert(k);

                $("#code[k]").text(barcodeVal);

                k++;
                localStorage["counter"] = k;
                localStorage.setItem("code", JSON.stringify(code));

            }, function(error) {
                alert("Scan failed: " + error);
            });
        }
    </script>
    </html>

我不知道我哪里出错了,我的数组无法在表格中打印数据。 请帮忙。提前致谢

2 个答案:

答案 0 :(得分:0)

您的jquery选择器错误而不是

$("#code[k]").text(barcodeVal);

应该是

$("#code["+k+"]").text(barcodeVal);

正常工作。在你更新阵列的地方,我无法得到你想做的事情。我希望这会有所帮助。

答案 1 :(得分:0)

你可以按照以下方式完成。

function SaveDataToLocalStorage(barcodeValue)
{

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

}
var scanCode = function () {
      window.plugins.barcodeScanner.scan(function (result) {
         if(result.cancelled == true ) {
           window.location.href = 'page5.html';
         } else {
           // below function save your data in localstorage.
           SaveDataToLocalStorage(result.text);
           scanCode();
         }

     }, function (error) {
            alert("Scan failed: " + error);
           window.location.href = 'page5.html';
    });
  }