2014-01-14 51 views
0

我有一個JavaScript代碼,它從json獲取對象。javascript:從json構建了一個html表單,但無法更新表單

從此,我建立了一個HTML字符串:

var htmlstr = "<table border=0>"; 
    for (var i=0;i<jsonData.people.length;i++) { 
     htmlstr=htmlstr+"<tr><td>" + jsonData.people[i].name + "</td>"; 
     htmlstr=htmlstr+"<td>"+ jsonData.people[i].cash + "</td>"; 
     htmlstr=htmlstr+"<td><button onclick='changeCash(i)'>Update</button></td></tr>"; 
     } 
    htmlstr=htmlstr+"</table>"; 

layer.addFeatures(features); 
layer.events.on({ "featureselected": function(e) { updateMak('mak', htmlstr) } }); 

    function changeCash(k) { 
     jsonData.people[k].cash=jsonData.people[k].cash+100; 
     } 

的HTML頁面如下:

<script type="text/javascript"> 
     if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 
        alert("Mobile device detected.");    } 
       function updateMak(id,content) { 
        var container = document.getElementById(id); 
        container.innerHTML = content; 
       } </script> 
<div id="mak"> List of People </div> 

比方說這顯示10人用自己的錢。 如果我點擊其更新按鈕之一,我認爲json數據按預期更新。但我不知道如何驗證它。表單中的值不會更新changeCash函數中的新值。

如何更新htmlstr並更新屏幕上已顯示的內容?

請指教。

+0

你爲什麼不只是調用updateMak changeCash後? –

回答

1

當您生成爲民現金

htmlstr=htmlstr+"<td>"+ jsonData.people[i].cash + "</td>"; 

你也應該生成ID爲此次TD,這樣就可以從更新功能changeCash(k)的內容htmlstr。

喜歡的東西

htmlstr=htmlstr+"<td id='peoplecash"+i+"'>" + jsonData.people[i].cash + "</td>"; 

,然後在changeCash功能

function changeCash(k) { 
    jsonData.people[k].cash=jsonData.people[k].cash+100; 
    var peoplecash= document.getElementById("peoplecash"+k); 
    peoplecash.innerHTML = jsonData.people[k].cash;} 
+0

工作,謝謝。 我有另一個問題,它更新該字段,但是當我取消選擇該div,然後再次選擇它,原始值出現。但是當我點擊表格時,數值會更新爲真實值。一些奇怪的事情正在發生,但我會盡力弄清楚。 –