');for (var i = 0; i < 5; i++) { out.push(''); count++; // if (data.pagination.next_url = "") flag++; if (count > 4) {" />

Мой jquery не добавляет div для правильного узла

javascript jquery html

37 просмотра

4 ответа

304 Репутация автора

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);   

У меня есть этот простой код, но в проверке элементов он показывает.

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

Почему немедленно закрывает newdatadiv и почему не помещает в него фотографии?

Автор: Zulfiqar Tariq Источник Размещён: 18.07.2016 09:07

Ответы (4)


5 плюса

29378 Репутация автора

Попробуйте использовать строку, не забудьте закрыть цикл 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);   
Автор: madalinivascu Размещён: 18.07.2016 09:15

0 плюса

2993 Репутация автора

У вас есть начало div '<div class="newData">'вне цикла for, и вы закрываете его внутри цикла for. Затем вы добавляете это в цикл. Убедитесь, что вы добавили действительный HTML, когда добавляете его в #wrap, тогда он будет работать.

Редактировать: Кроме того, как указали другие: используйте строки, чтобы добавить строки друг к другу, а затем добавить.

Автор: TehSphinX Размещён: 18.07.2016 09:15

0 плюса

267486 Репутация автора

Проблема в том, что вы можете добавлять только целые элементы в 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);  
Автор: Rory McCrossan Размещён: 18.07.2016 09:16

0 плюса

225 Репутация автора

Вы не замыкаете цикл, который вызывает у вас проблему

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

добавь это в последний твой цикл

Автор: Zeeshan Sardar Размещён: 16.10.2017 07:18
Вопросы из категории :
32x32