2013-08-19 4 views
0
$.each(data.TrendingProducts, function (i, item) { 
    $("#trendcontent").append('<li>') 
     .append('<div class="product-wrapper">') 
     .append('<div class="image-wrapper">'); 
    $("<img/>").attr("src", item.Image).appendTo("#trendcontent"); 
    $("#trendcontent").append('</div>').append('</div').append('</li>'); 
}); 


<ul class="large-block-grid-3 small-block-grid-3"> 
    <div id="trendcontent"></div>   
</ul> 

Привет Я пытаюсь создать неупорядоченный список в jquery, однако списки не сформированы должным образом. Любые предложения/помощь?Динамическое создание LI в JQuery

+1

Одно из предложений - правильно отложить свой код. Это часто помогает выявлять проблемы с логикой и программным потоком. –

+0

Я согласен с Асадом. Но, по-моему, я что-то теряю, в основном, тег li генерируется и немедленно закрывается. –

+0

Вы не можете добавить частичный элемент в dom. – Musa

ответ

1

Есть несколько проблем с кодом:

  1. Вам не нужно добавлять закрывающие теги; jQuery обрабатывает DOM-представления элементов, а не разметку.
  2. #trendcontent является <div>, и вы не должны добавлять <li> элементы к <div> (использовать неупорядоченный список <ul> или нумерованный список <ol>)
  3. Даже если #trendcontent был список, вы вставив <img /> элементы непосредственно в он, чередующийся с элементами <li>. Это недопустимый HTML. Где ваши изображения должны идти, зависит от ваших требований, но они, разумеется, не должны быть братьями и сестрами из <li> элементов.
0

Вы должны приковать ребенок прочь каждое добавление, вы не можете добавить половину элемента, поэтому попробовать что-то вроде этого

$('#trendcontent').append(
    $('<li>').append(
     $('<div>').attr('class','product-wrapper').append(
      $('<div>').attr('class', 'image-wrapper').append(
       $("<img>").attr("src", item.Image) 
      ) 
     ) 
    ) 
); 

Как указано еще где, убедитесь, что #trendcontent является UL, а не DIV.

Смежные вопросы