2015-10-16 49 views
0

我對JavaScript很陌生,我試圖用ID填充多個div。JavaScript - innerHTML Mult。 Idds

到目前爲止,我有:

function run() { 
    var xhttp = new XMLHttpRequest(); 

    xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
    obj = JSON.parse(xhttp.response); 

    for (var i = 0; i <= obj.length; i++) { 
    document.getElementById("posttitle"+i).innerHTML = obj[i]['title']; 
    }; 

    for (var i = 0; i <= obj.length; i++) { 
    document.getElementById("posttext"+i).innerHTML = obj[i]['content']; 
    }; 

    } 
    } 
    xhttp.open("GET", "http://xxxx", true); 
    xhttp.send(); 
} 

HTML設置

<div id="post0"> 
    <div id="posttitle0"></div> 
    <div id="posttext0"></div> 
</div> 

<div id="post1"> 
    <div id="posttitle1"></div> 
    <div id="posttext1"></div> 
</div> 

我可以在div填補poststext [I]或posttitle [I]單獨但是當我跑在一起只有首先在函數中工作/填充ID。我錯過了什麼?謝謝!

+1

那麼你的元素從1開始編號,但你的循環從0開始。你有沒有檢查開發者控制檯的錯誤? – Pointy

+0

已更新。我錯誤地從代碼的HTML片,但我仍然不想添加到兩個div。 –

+0

首先要學習的是如何打開瀏覽器的錯誤控制檯。錯誤消息將打印在那裏。它在調試這樣的事情方面有很多幫助。 – JJJ

回答

2

我相信它是因爲你有< =它會試圖抓住一個不存在的元素。

for (var i = 0; i < obj.length; i++) { 
    document.getElementById("posttitle"+i).innerHTML = obj[i]['title']; 
    document.getElementById("posttext"+i).innerHTML = obj[i]['content']; 
}; 
-1

試試這個,並刪除「;」在

for (var i = 0; i <= obj.length; i++) { 
document.getElementById("posttitle"+i).innerHTML = obj[i]['title']; 
document.getElementById("posttext"+i).innerHTML = obj[i]['content']; 
}