Javascript Jquery/rss提要脚本,用于过滤所有超过90天的帖子
我正在创建一个脚本来显示我的rss提要并过滤掉以前的帖子,所有这些都使用Jquery。在我的脚本中,我试图过滤掉超过90天的帖子 有1个帖子显示超过90天限制。我试着用不同的参数来改变我的标签 我遗漏了什么或添加了什么不应该在那里 我的Jquery代码是:Javascript Jquery/rss提要脚本,用于过滤所有超过90天的帖子,javascript,jquery,rss,Javascript,Jquery,Rss,我正在创建一个脚本来显示我的rss提要并过滤掉以前的帖子,所有这些都使用Jquery。在我的脚本中,我试图过滤掉超过90天的帖子 有1个帖子显示超过90天限制。我试着用不同的参数来改变我的标签 我遗漏了什么或添加了什么不应该在那里 我的Jquery代码是: <script> //function to load XML document $.ajax({ type: 'GET', url: '/ser/whatsnew_main.xm
<script>
//function to load XML document
$.ajax({
type: 'GET',
url: '/ser/whatsnew_main.xml',
dataType: 'xml',
success: function(xml){
$(xml).find("item").each(function(){
var title = $(this).find('title').text();
var date = $(this).find('pubDate').text();
var description = $(this).find('description').text();
$('#feed').append('<li><strong>'+title+'</strong><br>'+date+'<br>'+description+'</li>');
//exp date parameters
var today = new Date();
var runOn = new Date(today.setDate(1));
var expire = new Date(runOn.setDate(-90));
var pub = new Date(date);
if(today.getDate() === 1 == true && pub < expire == true){
$(this).each('item').empty();
}
else if(pub < expire == true){
$(this).each('item').empty();
}
alert("on " +today.getDate()+ ", expiration date is " +expire);
});
}
});
</script>
我在其他rss订阅源上尝试了相同的代码,但最后一篇过时的文章不断出现,不管它的日期是2015年9月30日还是2015年8月21日
我不想创建一个全新的函数,从第一个函数调用它,然后创建一个全新的xml加载函数来获取pubDate。根据您的逻辑,我并不100%清楚您想要做什么,但是如果您感兴趣的是从xml数据源中删除过期的元素,一旦你解决了两件事,你应该能够按照自己的方式来做,比如:
if(today.getDate() === 1 && pub < expire) {
$(this).remove();
} else if(pub < expire) {
$(this).remove();
}
$(这)指的是提要中的当前项,但是您尝试向它请求其中的每个“项”,然后尝试清空当前项中的每个“项”内容,而不是删除该项本身
这是一个JSFIDLE,其中的项目是HTML而不是XML,但它似乎符合您的要求:好的,我看到了问题,但我认为这不是条件,我看到您在创建runOn时将今天设置为每月的第一天,因此在代码的开头,不是这样:
var today = new Date();
var runOn = new Date(today.setDate(1));
请尝试以下代码:
var today = new Date();
var runOn = new Date();
runOn.setDate(1);
查看一些项目的实际提要数据会很有帮助,包括不应该显示的数据。请尝试简化代码,对===和==的计算已经是布尔值,类似于…if(today.getDate()==26&&runOn>expire)@Chris OnDaRocks,在尝试您的建议之后,如果我没有将“==true”添加到两个布尔值,我的代码将显示所有帖子。出于某种原因,它想把它放在那里。我还尝试了您的建议,使用“==true”&“==false”和“==true”&“==true”,来回更改>因为代码不起作用,而且仍然显示所有帖子。我想我的下一个选择是创建一个单独的函数,并在第一个函数结束后调用它。但这意味着我可能需要完成整个xml加载工作才能获得发布日期|@adammtlx,我的xml代码示例是-不带beg和标签:“通用标题2015年10月28日Gen Title 2015年9月30日”我在删除最后一次过期的帖子时遇到了问题,在本例中,是2015年9月30日的1。其他旧的都被删除了。@chrisondarrocks,我在它们上面都省略了“==true”部分,它们可以工作,但不能使用“runOn>expire”。现在我使用的是'if(today.getDate()==26&&pub
var today = new Date();
var runOn = new Date(today.setDate(1));
var today = new Date();
var runOn = new Date();
runOn.setDate(1);