2013-07-27 2 views
-2

Я пытаюсь создать цикл в JQuery для отображения данных! Я использую данные API. Кажется, я получаю синтаксическую ошибку.Looping in JQuery

Могу ли я так поступать?

$.each(data.results, function (i, item) { // on this line 

    var Name = item.name; 
    var Date = item.auditInfo.dateCreated; 
    var Creator = item.creator.display; 
    $htmlstring.append($('<li/>').append('<p>Test</p>')); 
    $htmlstring.append("<div class='title'> Info : " 
    Name + Date + Creator "</div>"); 

}); 
$('#afficher').html($htmlstring); 
+0

Пробовали ли вы что? – dievardump

+1

Вы получили сообщение об ошибке? это работает? это не работает? – clem

+0

Да, это не сработает! –

ответ

1

Вы пытаетесь передать набор элементов DOM ($htmlstring) к функции, которая ожидает HTML-строку (.html).

Попробуйте использовать вместо этого $('#afficher').append($htmlstring). [О, и переименуйте переменную, так как это не строка HTML!]

Вы также пытаетесь создать нелегальный HTML. Предполагая, что исходный элемент контейнера из $htmlstring является <ul> (так как вы добавляете <li>), вы не можете добавить <p> или <div> предметов в номер <ul>.

Если предположить, что эти элементы должны быть в<li> элемент:

var container = $('<ul>'); 

$.each(data.results, function (i, item) { 

    var name = item.name; 
    var date = item.auditInfo.dateCreated; 
    var creator = item.creator.display; 

    var li = $('<li>').appendTo(container); 
    li.append('<p>Test</p>'); 
    li.append($('<div>', { 
     'class': 'title', 
     'text' : 'Info : ' + name + date + creator 
    })); 

}); 

$('#afficher').append(container); 
+0

Я не нашел, что вы изменили с помощью «$ ('# afficher'). Html ($ htmlstring);" , –

+0

'.html()' принимает объекты jQuery. – Blender

+0

@Blender не соответствует документам API – Alnitak