Ваша проблема в том, что вы добавляете изображение к <li>
, когда хотите, чтобы оно было внутри <a>
, которое будет внутри этого <li>
. Измените ваш строитель элемента списка из этого:
li = document.createElement('li');
$(li).append($(p['regular-body']).find('img')[0])
.append('<div class="featurelink"><a class="'+p.type+'" href="'+p["url-with-slug"]+'">'+titlestr+Featured.linkAppend+'</a></div>');
ul.append(li);
примерно так:
$li = $('<li>');
$li.append('<div class="featurelink"><a class="' + p.type + '" href="' + p["url-with-slug"] + '">' + titlestr + Featured.linkAppend + '</a></div>');
$li.find('a').prepend($(p['regular-body']).find('img')[0]); // The important part
ul.append($li);
должен сделать свое дело. Изменения строят <a>
внутри <li>
, а затем помещают изображение впереди (то есть, prepends) <a>
. Вам, вероятно, придется немного изменить CSS, чтобы получить нужный макет, возможно, что-то вроде:
a { display: block; }
a img { display: block; }
с соответствующими CSS-селекторами для их локализации.