0

Я пытаюсь удалить и заменить теги «статьи» новым, используя в качестве источника json-массив, но я всегда получаю только последний элемент массива JSON ... Здесь как посмотрите мой HTML структуру:Wordpress удалить и заменить сообщения с помощью AJAX

<main id="main" class="site-main" role="main"> 

    <article > 
    <header class="entry-header">    
    TEST 1 
     <a href="http://example.com/mdu_test/mdu_news/4996" rel="bookmark"> test</a> 
     <div>TAGS:<a href="http://example.com/tag/dog">dog</a></div> 
    </header> 
    </article> 

    <article > 
    <header class="entry-header">   
    TEST 2 
     <a href="http://example.com/mdu_test/mdu_news/4587" rel="bookmark"> test</a> 
     <div>TAGS:<a href="http://example.com/tag/cat">cat</a></div> 
    </header> 
    </article> 
</main> 

и вот мой Javascript функция, с помощью JQuery, чтобы удалить и заменить предыдущие посты с новыми.

function get_posts($params){ 
    var $container = $('#main'); 
    var $content = $container.find('article'); 
    var $status = $('.ajax_tag'); 
    var counter = 0; 

... Jquery.ajax заявление здесь ...

$.each(data,function(index, post){ 
    //$content.children().remove(); 
    $content.empty(); 
    console.log(index); 
    //$content.replaceWith('<article>' + post.title + '</article>'); 
    //console.log(data.length); 
    if (counter != data.length) { 

    console.log('before : ' + counter); 
    $content.append('<article>' + post.title + '</br>' + '</article>'); 
    counter += 1; 
    console.log('after : ' + counter); 

    } else { 
     return false; 
    } 
}); 

Так отсюда не ясно мне, как я могу выполнить эту операцию.

Единственный способ, которым мне удалось получить полный список моего массива, был «.append()», но без «.empty()», которые затем добавляют содержимое массива к каждому тегу «статьи».

PS: Я смотрю на .each(), $ .each(), .map(), $ .map(), для и для ... во всем примере и объяснении, которое я нашел, используется CSS " li ", который, как представляется, имеет имплицитную итерацию, где метки« статья »,« div »,« span »нет.

Надеюсь, что я достаточно ясен, любой вход был бы очень признателен.

Спасибо!

ответ

0

Я, наконец, исправил свою проблему с помощью этого решения, в основном я использую метод jQuery .remove() вместо .empty(), и он отлично работает.

$.each(data,function(index, post){ 
     $content.remove(); 
     $content.append('<article>' + post.title + '</br>' + '</article>'); 
});