簡體   English   中英

如何將Json數據插入HTML Div?

[英]How to insert Json Data into Html Divs?

這是我的json文件“ contact.json”

[
   {
      "name":"Alice",
      "surname":"Smith"
   },
   {
     "name":"Bob",
      "surname":"Walter"
   }
]

我想要達到的目的是使用javascript(+ jquery)讀取此文件,並填充html div(基於聯系人數量),然后在div中放置名稱和姓氏。

<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Test</title>
        <meta name="description" content="Test">
        <link rel="stylesheet" type="text/css" href="css/style.css">

        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

        <script type="text/javascript" src="script.js"></script>
        <script type="text/javascript" src="people.json"></script>
    </head>
    <body>

     <section id="contacs">
       <div class="grid-3">               
            <div class="box">
                   <h3 class="name"></h3>
                   <h3 class="surnamename"></h3>                         
             </div>                               
       </div>
     </section>  
  </body>
</html>

這是我到目前為止所寫的內容;

load();

function load(){

var name=document.querySelector(".name");
var surname=document.querySelector(".surname");

    $.getJSON("contact.json", function (data) {
    $.each(data, function (index, value) {
       console.log(value);
       name.innerHTML= value.name;
       surname.innerHTML= value.surname;


    });
});

這樣我就可以讓聯系人在控制台中將其寫入,而無論如何我都無法將其傳遞到innerHTML中,並且不知道如何填充稱為“ box”的HTML div。

您必須以以下方式通過js創建元素:

document.createElement('div')
document.createElement('h3')

要在那里更改文本,請使用

block.innerHTML = "Put your code here"

並用其他塊填充

block.appendChild(otherBlock)

這是一個小例子,希望對您有所幫助: https : //codepen.io/anon/pen/jQGBdm

一種可能的解決方法:

var myDiv = document.createElement("div");   
myDiv.innerHTML = "<h3>" + value.name + "</h3> \
               <h3>" + value.surname + "</h3>"   

document.body.appendChild(myDiv);

更新:(最佳實踐)

var markup = `
<div class="box">
       <h3 class="name">${value.name}</h3>
       <h3 class="surname">${value.surname}</h3>                         
 </div>
`;

document.body.innerHTML = markup;

將ID賦予父div容器 ,創建動態h3元素並將其附加到父div

HTML:

<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Test</title>
        <meta name="description" content="Test">
        <link rel="stylesheet" type="text/css" href="css/style.css">

        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

        <script type="text/javascript" src="script.js"></script>
        <script type="text/javascript" src="people.json"></script>
    </head>
    <body>

     <section id="contacs">
       <div class="grid-3" id="container">               
            <div class="box">
                   <h3 class="name"></h3>
                   <h3 class="surnamename"></h3>                         
             </div>                               
       </div>
     </section>  
  </body>
</html>

jQuery的:

var data = [
   {
      "name":"Alice",
      "surname":"Smith"
   },
   {
     "name":"Bob",
      "surname":"Walter"
   }
];

load();

function load(){

var name=document.querySelector(".name");
var surname=document.querySelector(".surname");

    $.each(data, function (index, value) {
        var parent = document.createElement('div');
      parent.className = 'box';
      var $name = $('<h3 class="name">').text(value.name);
      var $surname = $('<h3 class="surname">').text(value.surname);
      $name.appendTo(parent);
      $surname.appendTo(parent);
      $(parent).appendTo($('#container'));
    });
}

的jsfiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM