javascript - 使用jquery根据本地存储数据动态创建HTML分区

标签 javascript jquery html json local-storage

我的本​​地存储中有以下 JSON。

userData:[{
           "name":"John",
           "dob":"2011-02-01",
           "gender":"male",
           "marital_status":"married",
           "email":"john@gmail.com"
          },
          {
           "name":"Paul",
           "dob":"2011-08-05",
           "gender":"male",
           "marital_status":"unmarried",
           "email":"paul@gmail.com"
          },
          {
           "name":"Mary",
           "dob":"2011-12-11",
           "gender":"female",
           "marital_status":"married",
           "email":"mary@gmail.com"
          }]

在上面的 JSON 中,我有 3 个用户,即:John、Paul 和 Mary,位于本地存储的“userData”数组中。用户数量可以>3或<3, 如何根据任何给定时间点存在的用户数量创建 HTML div(具有带删除按钮的用户图标)。我还执行删除用户操作,因此它本质上必须是动态的。我试图用 jquery 来实现这一点,但没有发现任何有用的东西。到目前为止,我已经尝试计算数组元素的数量,并基于此我显示或隐藏已在 HTML 中编码的 div(针对 4 个用户场景)

if(counter==4)
  {
    $("#avatar1").show();
    $("#avatar2").show();
    $("#avatar3").show();
    $("#avatar4").show();
}
  else if(counter==3)
  {
    $("#avatar1").show();
    $("#avatar2").show();
    $("#avatar3").show();
    $("#avatar4").hide();
  }
  else if(counter==2)
  {
    $("#avatar1").show();
    $("#avatar2").show();
    $("#avatar3").hide();
    $("#avatar4").hide();
  }
  else if(counter==1)
  {
    $("#avatar1").show();
    $("#avatar2").hide();
    $("#avatar3").hide();
    $("#avatar4").hide();
  }
  else{
  $("#container").html("<p>No Users found</p>");
  }

其中,counter=数组中元素的数量(在本例中为 userData)。 有没有办法动态地做到这一点,或者我完全错了,毫无意义?我不认为这是不可能的,但我只是想完成寻找解决方案的任务。

最佳答案

如果您想动态显示数据,请加载 json 并循环遍历该元素并附加到 html 文档。下面的链接中有一个示例。

https://jsfiddle.net/princedc/qwb2ubqx/1/

假设您有 id 为“userNames”的 div 标签,如下

<div id="userNames">
</div>

您可以加载 json 并循环它以创建动态页面元素并附加到上面的 div。这将满足 json 中任意数量的动态数据。

var jsonData = { userData:[{
           "name":"John",
           "dob":"2011-02-01",
           "gender":"male",
           "marital_status":"married",
           "email":"john@gmail.com"
          },
          {
           "name":"Paul",
           "dob":"2011-08-05",
           "gender":"male",
           "marital_status":"unmarried",
           "email":"paul@gmail.com"
          },
          {
           "name":"Mary",
           "dob":"2011-12-11",
           "gender":"female",
           "marital_status":"married",
           "email":"mary@gmail.com"
          }]
          };

(function (){ 
    for(var i=0; i < jsonData.userData.length;i++){
       $('#userNames').append('<div>'+ jsonData.userData[i].name + '</div>');
  }
})();

关于javascript - 使用jquery根据本地存储数据动态创建HTML分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42254389/

相关文章:

jquery - 自定义 HTML5 范围输入和句柄偏移

javascript - 使用 jQuery Mobile 在 pageshow 上加载函数并在离开页面时停止

javascript - Facebook SDK : Uncaught SyntaxError: Unexpected token _

javascript - SAPUI5:正确处理点击事件

javascript - 未定义索引 : page jqGrid

javascript - 单击按钮时,突出显示文本框的全部内容(youtube 分享)

javascript - 图片网址显示在图片应在的位置

javascript - 如何将 Double 或 Triple Spaces Sentences 逐字拆分为 Array Node.js?

javascript - 如何将 VueJS 与 RequireJS 一起使用?

javascript - Node.js 无法发布请求