2014-01-16 3 views
0

У меня есть элемент HTML, который содержит список пространств, содержащих текстовые имена автора, мне нужно поместить каждый промежуток имени автора в список элементов li соответственно, как это сделать, используя JQuery?JQuery цикл через дочерние элементы и добавляет в другой список

var all_author_names = $('.postcontent .entry_content #author-name'); // get list of spans containg names 
var li_to_modifiy = $('.entry_meta > li:nth-child(3)') // gets list of li elements that I need to add each name respectively 

EDIT:

Упрощенный HTML:

<div class="postcontent nobottommargin clearfix"> 
    <ul class="entry_meta clearfix"> 
     <li class="hide"></li> 
     <li></li> 
     <li><span>|</span><a href="#"><i class="icon-link"></i>Permalink</a></li> 
    </ul> 
    <span class="page-divider"><span></span></span> 
    <div class="entry_content"> 
     <p></p><div class="entry_image"> 
     <span id="author-name" class="hide">Karen Hutchins</span> 
    </div> 
</div> 

</div> 

Примечания: Класс PostContent является автогенерируемым и у меня есть много его, а не только один.

Чтобы сделать вещи ясно:

1- Пусть all_author_names содержит этот HTML:

<span>my name</span> 
<span>other name</span> 
<span>your name</span> 

2- Мне нужно каждый элемент Li внутри класса PostContent иметь один пролет, имеющую отношение к его индексу, так результат будет выглядеть так:

<div class="postcontent nobottommargin clearfix"> 
    <ul class="entry_meta clearfix"> 
     <li class="hide"></li> 
     <li><span>my name</span></li> 

Другой PostContent класс

<div class="postcontent nobottommargin clearfix"> 
    <ul class="entry_meta clearfix"> 
     <li class="hide"></li> 
     <li> <span>other name</span></li> 
+0

Вы можете разместить HTML? – tilda

+0

вопрос не так понятный, лучше ya почтовый индекс. –

+0

Я разместил HTML. –

ответ

1

Но я думаю, что вы хотели что-то вроде этого:

var all_author_names = $('.postcontent .entry_content #author-name'); // get list of spans containg names 
var li_to_modifiy = $('.entry_meta > li:nth-child(3)') // gets list of li elements that I need to add each name respectively 

all_author_names.find('span').each(function(a,b){ 
console.log(b.text()); 
}); 

li_to_modifiy.find('li').each(function(a,b){ 
console.log(b.text()); 
}); 

ОБНОВЛЕНО ОТВЕТ ОТ ВАШЕГО Обновлено ВОПРОС:

$('.postcontent').each(function(a,b){ 
    $(b).find('li:eq(1)').html('<span>'+$.trim($(b).find('#author-name').text())+'</span>'); 
    console.log($.trim($(b).text())); 
}); 

см JSFiddle

+0

Работал, но каждый из них дал одно и то же имя автора !. –

+0

Обратите внимание, что он работал только при изменении '.entry-meta> li: eq (2)' to ..entry_meta> li: nth-child (3) ' –

+0

Все еще давая одно и то же имя автора и не работая с li: eq (2), но с ли: nth-child (3). Я дал ему +1, хотя! –

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