【问题标题】:While displaying its also print old Data from local storage在显示它的同时还打印来自本地存储的旧数据
【发布时间】:2019-01-28 19:51:01
【问题描述】:
  function addrow() {
            debugger;
            var person = [];
            if (localStorage.person1 != null && localStorage.person1 !=undefined) {
                var person = JSON.parse(localStorage.person1);


            }

            var name = document.getElementById('name').value;
            var city = document.getElementById('city').value;
            person.push({ 
                pname: name,
                pcity: city
            });


            localStorage.setItem('person1', JSON.stringify(person));
            bind();
        }

    function bind() {
        debugger;
        var per_list = JSON.parse(localStorage.getItem('person1'));
        for (i = 0; i < per_list.length; i++ ) {
                var table = document.getElementById('ptable');
                var row = table.insertRow(0);
                var col1 = row.insertCell(0);
                var col2 = row.insertCell(1);
            col1.innerHTML = per_list[i].pname;
            col2.innerHTML = per_list[i].pcity;
            }

        }

我有两个字段name 和city;现在,单击“添加行”打印ok 为第一个value,但随后它同时打印old 和new 值.. 和,我只想要old 输入下方的新条目.. 在此先感谢

【问题讨论】:

    标签: javascript arrays json local-storage input-field


    【解决方案1】:

    您需要清除表格,因为您正在显示 .bind 函数中的所有元素。

    function bind() {
      debugger;
      var per_list = JSON.parse(localStorage.getItem('person1'));
      // clear the table
      var table = document.getElementById('ptable');
      for (var i = 0, rows = table.rows.length; i < rows; i++) {
        table.deleteRow(0)
      }
      // fill the table
      for (i = 0; i < per_list.length; i++) {
        var row = table.insertRow(0);
        var col1 = row.insertCell(0);
        var col2 = row.insertCell(1);
        col1.innerHTML = per_list[i].pname;
        col2.innerHTML = per_list[i].pcity;
      }
    }
    

    【讨论】:

    • @stackoverflow.com/users/128165/gabriele-petrioli 如果我想要刷新页面后的打印数据,我该怎么办?
    • @Tushar 只需在页面加载后调用bind()。 (但将开头的bind代码更改为var per_list = JSON.parse(localStorage.getItem('person1')) || [];)(在行尾添加|| [],以便如果person1尚未定义,则应将其视为空)
    • @stackoverflow.com/users/128165/gabriele-petrioli ,我尝试在程序开始时调用该函数,但它不起作用,请建议正确放置它
    • @Tushar 我需要了解更多关于您的页面设置的信息。但请尝试在 bind 函数的定义之后添加 document.addEventListener('DOMContentLoaded', bind);(outisde of it) .
    猜你喜欢
    • 2021-10-29
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 2021-12-03
    • 2022-01-16
    • 2020-10-02
    相关资源
    最近更新 更多