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>');
});
我正在尝试删除 "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>');
});