如何使用JSON文件在HTML中动态创建元素

uxh89sit  于 2023-10-21  发布在  其他
关注(0)|答案(4)|浏览(115)

我想使用JSON文件动态创建HTML元素。

  1. {"myObject": {
  2. "JAVA": {
  3. "id": "JAVAsubj",
  4. "path": "json/data.json"
  5. },
  6. "C#": {
  7. "id": "JAVAsubj",
  8. "path": "json/data1.json"
  9. },
  10. "C++": {
  11. "id": "JAVAsubj",
  12. "path": "json/data2.json"
  13. }
  14. }
  15. }

这是我的JSON文件。我想动态创建HTML按钮。应该像JAVA,C#,C一样创建。如果我在C旁边添加了一些东西,那么按钮应该是动态创建

xyhw6mcr

xyhw6mcr1#

您可以尝试类似的FIDDLE
但是,我将myObject改为json对象数组,如下所示:

  1. var jsonObj = {"myObject":
  2. [
  3. {
  4. title: 'JAVA',
  5. id: "JAVAsubj",
  6. path: "json/data.json"
  7. },
  8. {
  9. title: "C#",
  10. id: "JAVAsubj",
  11. path: "json/data1.json"
  12. },
  13. {
  14. title: "C++",
  15. id: "JAVAsubj",
  16. path: "json/data2.json"
  17. }
  18. ]
  19. }
  20. var count = Object.keys(jsonObj.myObject).length;
  21. var container= document.getElementById('buttons'); // reference to containing elm
  22. for(var i=0;i<count;i++){
  23. var obj= jsonObj.myObject[i];
  24. var button = "<input type='button' value="+obj.title+"></input>"
  25. container.innerHTML+=button;
  26. }
展开查看全部
o75abkj4

o75abkj42#

你需要做的第一件事就是将JSON转换为js对象:

  1. var myJSON= {"myObject": {
  2. "JAVA": {
  3. "id": "JAVAsubj",
  4. "path": "json/data.json"
  5. },
  6. "C#": {
  7. "id": "JAVAsubj",
  8. "path": "json/data1.json"
  9. },
  10. "C++": {
  11. "id": "JAVAsubj",
  12. "path": "json/data2.json"
  13. }
  14. }
  15. }

现在,像下面这样将对象的值放入字典:

  1. var dctLanguages = myJSON["myObject"];

现在要动态呈现按钮,只需执行以下操作:
var strHTML =“”;

  1. for (var key in dctLanguages)
  2. {
  3. var language = dctLanguages[key];
  4. strHTML += '<input type="button" id="'+language.id+'" value="'+key+'"/>';
  5. }

并将此HTML附加到容器div中,如下所示:

  1. $(strHTML).appendTo("#container");

希望这对你有用。

展开查看全部
jpfvwuh4

jpfvwuh43#

  1. const info = [
  2. {
  3. "id": 1,
  4. "img": "a.jpg",
  5. "name": "Avinash Mehta",
  6. "desc": "I am Web Developer"
  7. },
  8. {
  9. "id": 2,
  10. "img": "c.jpg",
  11. "name": "Avinash",
  12. "desc": "I am Web"
  13. },
  14. {
  15. "id": 3,
  16. "img": "b.jpg",
  17. "name": "Mehta",
  18. "desc": "I am Developer"
  19. },
  20. ]
  21. const main = document.querySelector(".main");
  22. window.addEventListener("DOMContentLoaded", function(){
  23. let displayInfo = info.map(function(profile){
  24. return` <div class="profile">
  25. <img src="${profile.img}" alt="">
  26. <h2>${profile.name}</h2>
  27. <p>${profile.desc}</p>
  28. </div>`
  29. });
  30. displayInfo = displayInfo.join("");
  31. main.innerHTML = displayInfo
  32. })
展开查看全部
cuxqih21

cuxqih214#

这个应该能帮到你

  1. const info = [
  2. {
  3. "id": 1,
  4. "img": "a.jpg",
  5. "name": "Avinash Mehta",
  6. "desc": "I am Web Developer"
  7. },
  8. {
  9. "id": 2,
  10. "img": "c.jpg",
  11. "name": "Avinash",
  12. "desc": "I am Web"
  13. },
  14. {
  15. "id": 3,
  16. "img": "b.jpg",
  17. "name": "Mehta",
  18. "desc": "I am Developer"
  19. },
  20. ]
  21. const main = document.querySelector(".main");
  22. window.addEventListener("DOMContentLoaded", function(){
  23. let displayInfo = info.map(function(profile){
  24. return` <div class="profile">
  25. <img src="${profile.img}" alt="">
  26. <h2>${profile.name}</h2>
  27. <p>${profile.desc}</p>
  28. </div>`
  29. });
  30. displayInfo = displayInfo.join("");
  31. main.innerHTML = displayInfo
  32. })
展开查看全部

相关问题