2016-07-18 37 views
0
var out = []; 
out.push('<div class="newData">'); 

for (var i = 0; i < 5; i++) { 
    out.push('<img src="' + data.data[i].images.low_resolution.url + '"/>'); 
    count++; 

    // if (data.pagination.next_url = "") flag++; 

    if (count > 4) { 
     myurl = data.pagination.next_url; 
     count = 0; 
    } 

    out.push('</div>'); 
    $('#wrap').append(out); 

我有這個簡單的代碼,但在它顯示的檢查元素。我的jQuery沒有添加div到正確的節點

<div id="wrap"> 
    <div class="newdata"></div> 
    <img scr='"asd"/> 
    <img scr='"asd"/> 
    <img scr='"asd"/> 
</div> 

爲什麼被立即關閉newdata股利和爲什麼它不把照片?

+2

哪裏你的for循環結束了嗎?請向我們展示整個循環,否則我們無法真正幫助。 – TehSphinX

回答

5

嘗試使用字符串,不要忘記關閉for循環

var out = ''; 
out+='<div class="newData">'; 

for (var i = 0; i < 5; i++) { 
    out+='<img src="' + data.data[i].images.low_resolution.url + '"/>'; 
    count++; 

    // if (data.pagination.next_url = "") flag++; 

    if (count > 4) { 
     myurl = data.pagination.next_url; 
     count = 0; 
    } 
} 
    out+='</div>'; 
    $('#wrap').append(out); 
0

你有外的股利'<div class="newData">'開始for循環,並關閉它裏面的for循環。然後將其添加到循環中。確保在將附加到#wrap的時候添加有效的html,然後它將起作用。

編輯:另外正如別人指出的:使用字符串將字符串添加到對方,然後追加。

0

問題是因爲您只能將整個元素附加到DOM。當你追加div標籤時,瀏覽器會自動關閉它。這意味着您的img元素將被創建爲兄弟。

您可以改變您的邏輯來創建div容器,然後在循環中構建HTML字符串並將其附加在一起。試試這個:

var $div = $('<div class="newData"></div>').appendTo('#wrap'); 
var html = ''; 
for (var i = 0; i < 5; i++) { 
    html += '<img src="' + data.data[i].images.low_resolution.url + '"/>'); 
} 
$div.append(html); 
0

您不關閉循環,這導致你的問題

out+='</div>'; 
$('#wrap').append(out); 

在最後的循環中添加此