Wordpress 删除帖子并将其替换为 AJAX

Wordpress remove and replace posts with AJAX

我正在尝试删除 "article" 标签并将其替换为使用 json 数组作为源的新标签,但我总是只获取 JSON 的最后一个元素大批… 我的 html 结构如下:

<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()»,然后将数组内容附加到每个 «article» 标签。

PS:我查看了 .each()、$.each()、.map()、$.map()、for 和 for……在我找到的所有示例和解释中正在使用 CSS "li" 标签,它似乎具有隐式迭代,而标签 «article»、«div»、«span» 则没有。

希望我说得够清楚,任何输入都将不胜感激。

谢谢!

我终于用这个解决方案解决了我的问题,基本上我使用的是 jQuery .remove() 方法而不是 .empty() 方法,而且效果很好。

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