0

我有这个列表结构:

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

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

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

4

2 回答 2

0

您将需要编写 javascript 来根据您拥有的日期构建 dom。我建议使用诸如 mustache 或 handlebars 之类的模板框架来保持代码整洁。

于 2012-04-30T20:40:32.293 回答
0

只需遍历具有“d”类的元素并检查它们是否符合您的日期标准,如果不符合,则将该 li 设置为显示“无”。您必须在 DOM 节点树中找到比您的日期高 8 级的 li。

于 2012-04-30T21:06:42.730 回答