如果我只能使用javascript,我该如何按日期过滤列表?

时间:2012-04-30 20:33:11

标签: javascript

我有这个列表结构:

<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;

还有一件事......列表元素的数量因页面而异,所以我还需要了解列表大小,但我认为这很容易用“长度”。

任何想法我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

您需要根据日期编写javascript来构建dom。我建议使用模板框架,如胡子或把手,以保持代码整洁。

答案 1 :(得分:0)

只需运行带有“d”类的元素,如果没有,则检查它们是否符合您的日期条件,然后将该li设置为“none”。你必须在DOM节点树中找到li,它看起来比你的日期高8级。