日期对象未比较正确
Date-obj not compared right
我在使用这个简单的代码时遇到了问题。我想知道为什么没有删除第二个元素(两个)?日期:2014, 11, 06
应该已经过期了,对吧?
JSFiddle
.HTML:
<div id="dates">
<p class="2014, 12, 05">One</p>
<p class="2014, 11, 06">Two</p>
<p class="2015, 01, 20">Three</p>
</div>
Javascript:
var current = new Date(),
elements = document.getElementById("dates").children,
deleteDate = 0;
for (var i = 0; i < elements.length; i++) {
deleteDate = new Date(elements[i].className);
if (current > deleteDate) {
elements[i].parentNode.removeChild(elements[i]);
}
}
我真的不知道为什么会发生这种情况...
- 在您的循环中,我们从
i = 0
开始。 - 索引
0
是One
元素。 - 删除
One
- 下一个循环迭代,
i = 1
. - 索引
1
现在是Three
元素,因为在最后一个循环中删除了第一个元素。
因此,Two
被完全跳过。
您应该保存要删除的元素,然后一次将它们全部删除。
这是
你要找的吗? 演示:http://jsfiddle.net/68tL6uz7/2/
var currentDate = new Date();
var dateList = document.getElementsByTagName("p");
for (var i =0; i < dateList.length; i++) {
console.log(dateList[i]);
var text = dateList[i].innerHTML;
console.log(text);
var newDate = new Date(text);
console.log(newDate);
if (currentDate > newDate) {
dateList[i].style.display = 'none';
}
}
<div id="dates">
<p class="">2014, 12, 05</p>
<p class="">2014, 11, 06</p>
<p class="">2015, 01, 20</p>
</div>
相关文章:
- 使用javascript比较对象中的对象值和数组长度
- 角度深度比较对象(特定属性除外)
- 比较对象类型时是否需要第三个=
- 如何在 JavaScript 中使用 # 符号比较对象
- 使用isBetween函数比较对象中的键值
- 使用lodash比较对象并从数组中删除对象
- 按值比较对象
- 比较对象数组,最佳方式
- 比较对象中的元素
- 如何通过比较对象属性来查找列表中的对象
- JavaScript松散比较对象和字符串
- 是否有一个实用程序来深度比较对象在谷歌闭包库
- 使用Linq.js比较对象数组的每个成员
- 如何在推入数组之前比较对象
- 当比较对象时,有选择地控制角$watch的发射
- 比较对象并只获取存在于所有对象中的对象
- 为什么ava在比较对象列表和对象文本列表时失败
- 使用Lodash比较对象数组和整数数组
- 比较对象数组中的值与对象响应数组中的值
- AngularJS + Jasmine:比较对象