我有这个列表结构:
<ul class="pol list">
<li>
<div class="tekst">
<h2><span class="name"></span></h2>
<p class="description"></p>
<div class="commentsBar1">
<div class="commentsBarL1">
<h5>
<strong class="category">
<span style="display:none;"></span>
<span class="d">27.12.2011</span>
</strong>
</h5>
<h5><strong></strong></h5>
</div>
</div>
</div>
</li>
<li>
<div class="tekst">
<h2><span class="name"></span></h2>
<p class="description"></p>
<div class="commentsBar1">
<div class="commentsBarL1">
<h5>
<strong class="category">
<span style="display:none;"></span>
<span class="d">03.03.2012</span>
</strong>
</h5>
<h5><strong></strong></h5>
</div>
</div>
</div>
</li>
</ul>
我需要js来隐藏包含超出特定范围的日期的所有列表标签。日期范围由用户给出,开始日期和结束日期的方式与列表中的日期(dd.mm.yyyy)相同。
<input id="Date1" name="Date1">
<input id="Date2" name="Date2">
我有这个日期比较代码:
var dControl = document.getElementsByClassName("d");
var d1Control = document.getElementById("Date1");
var d2Control = document.getElementById("Date2");
var arrD = dControl.value.split(".");
var dd0 = new Date(arrStartDate[2], arrStartDate[1], arrStartDate[0]);
var arrD1 = d1Control.value.split(".");
var dd1 = new Date(arrStartDate[2], arrStartDate[1], arrStartDate[0]);
var arrD2 = d2Control.value.split(".");
var dd2 = new Date(arrStartDate[2], arrStartDate[1], arrStartDate[0]);
if((dd0 <= dd2 && dd0 >= dd1)) {
return true;
}
return false;
还有一件事......列表元素的数量因页面而异,所以我还需要了解列表大小,但我认为这很容易用“长度”。
任何想法我怎样才能做到这一点?
答案 0 :(得分:0)
您需要根据日期编写javascript来构建dom。我建议使用模板框架,如胡子或把手,以保持代码整洁。
答案 1 :(得分:0)
只需运行带有“d”类的元素,如果没有,则检查它们是否符合您的日期条件,然后将该li设置为“none”。你必须在DOM节点树中找到li,它看起来比你的日期高8级。