iT邦幫忙

0

在Javascript 中對 json 資料存取的疑問

  • 分享至 

  • xImage

想請問各位javascript高手有關json資料存取如何處理?

例如已經透過 ajax 收到一個 json 字串 jsdata 如下:

jsdata = {"Tom":"29", "John":"18", "Wang":"25"};

問題: 如何透過迴圈將上述jsdata 找到對應的 html label 的 id 是 "Tom", "John", "Wang",然後更新年齡資料

請問下面的程式(示意)該如何修改?

for(var jsobj in jsdata){
obj = document.getElementbyId(jsobj.name);
obj.value = jsobj.age;
}

obj.value = jsobj.age
試試看改成
obj.textContent = jsobj.age
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
緯大啊緯大人
iT邦好手 1 級 ‧ 2023-05-03 10:24:01
最佳解答

jsdata["Tom"] = 99;
//改完收工

//如果要迴圈,可以用Jquery

$.each(jsdata,function (name, age) {                       
    console.log(name);
    console.log(age);   
});

//上述可以直接顯示
Tom:29
John:18
Wang:25

//要在迴圈裡判斷修改,則如下

$.each(jsdata,function (name, age) {
    if (name == "Tom")
        jsdata[name] = 99;
});

剩下要怎麼運用看你

補充:

不知道是不是誤會你的意思

你是說你有html labal會有這些ID?
如果是的話下次詢問可以把html也列出
然後可以用上方新增程式碼功能框起來 會比較清楚

//Html
<label id="Tom" ></label>
<label id="John"></label>
<label id="Wang"></label>

//Javascript

 var jsdata = {"Tom":"29", "John":"18", "Wang":"25"};

 Object.entries(jsdata).forEach(function ([name, age]) {            
                document.getElementById(name).textContent = age;
            
 });

//Jquery

 $.each(jsdata, function (name, age) {           
                $('#' + name).text(age);
        });

謝謝,有比較了解了

我要發表回答

立即登入回答