每个div的功能

时间:2014-05-19 14:08:08

标签: jquery date each

我已经创建了一个按照我想要的方式工作的函数,jsfiddle链接如下。基本上它抓取日期列表,命令它们,如果日期已经过去则删除li项目,将结果限制为1,然后将其重新格式化为可读顺序。结果是仅显示尚未通过的下一个日期。

HTML

<div class="over">
    <ul id="test">
        <li>2014-05-22</li>
        <li>2021-11-04</li>
        <li>2023-06-04</li>
    </ul>
</div>

<div class="over">
    <ul id="test">
        <li>2014-05-19</li>
        <li>2021-08-04</li>
        <li>2009-06-04</li>
    </ul>
</div>

jQuery

  $(".over ul").children().each(function (index) {

    // get todays date
    var marDate = $(this).text();
    var d = new Date();
    var month = d.getMonth() + 1;
    var day = d.getDate();
    var output = d.getFullYear() + '-' + (month < 10 ? '0' : '') + month + '-' + (day < 10 ? '0' : '') + day;

    // sort dates 
    var elems = $.makeArray($("ul").children());
    elems.sort(function(b, a) {
    return new Date( $(a).text() ) < new Date( $(b).text() );
    });
    $(this).parent().html(elems);

// check if date has passed
if (output > marDate) {
  $(this).remove();
}
});

// limit results to 1
$("ul").children().each(function (index) {
    var displayAmt = 1;
    $('ul').children().slice(displayAmt).remove();
});

//split string and reorder it to normal format
var data = $('ul').children().text();
var arr = data.split('-');
$("ul").children().html("<span class='day'>" + arr[2] + "</span>" +" "+ "<span class='month'>" + arr[1] + "</span>");

我遇到的问题是我希望这个函数发生在每个被称为'over'的div中。我应该能用

包装所有内容吗?
$('.over').each(function(){
// everything here
});

我似乎无法让它工作,它只是从两组li中获取两组信息,只提供一个输出,或结果未定义。

不太确定我哪里出错了,而且,如果我的其他任何方法都非常错误,请告诉我,我对jQuery很新。感谢。

http://jsfiddle.net/8sAzX/1/

**编辑**

我想通了,对于任何有兴趣的人,他都是我工作的小伙子

http://jsfiddle.net/8sAzX/4/

2 个答案:

答案 0 :(得分:1)

试试这个:

$.each($(".over ul li"), function(){
   //your code here
})

答案 1 :(得分:1)

当您使用.each()时,当前项目将位于this。所以你可以:

$('.over').each(function(){
   $('...', this)...
});

奇数$('...', this)表示:选择加工元素,但只选择this内的 。因此,您可以将$('...')视为$('...', document)

的捷径

如果您只想要this的直接子女,那么您可以使用$(this).children('li')。这将只匹配直接的孩子,而不是孙子。

相关: