Javascript数组并使用循环更新<ul> <li> </li> </ul>元素?

时间:2018-01-20 14:02:46

标签: javascript jquery django

我正在努力解决这个问题。我是一名初级python开发者,我被要求建立一个网站。当然我说是,并选择了Django。无论如何,我在构建日历小部件时遇到了一些问题。我正在使用AJAX将请求传递回视图,并根据用户是否请求上一个/下个月的日期来更新某些元素。

  function getPreviousMonth( event ) {
    $.ajax({
        type: "GET",
        dataType: "json",
        url: "{% url 'events' %}",
        data: { 'month': previousMonth, 'year': previousYear }
    })
    .done(function(response) {
        console.log(response);
        nextMonth = response.next_month;
        nextYear  = response.next_year;
        previousMonth = response.previous_month;
        previousYear  = response.previous_year;

        currentMonth = response.current_month;
        currentYear  = response.current_year;

        $('#currentMonth').text(currentMonth);
        $('#currentYear').text(currentYear);
    });
  };

这一切似乎运作良好。在响应对象中,我有一个列表数组(我想,如果我错了,肯定会纠正我)。在模板方面,我使用Django从一组天数组中设置日历:

  {% for week in weeks %}
  <ul class="days">
    {% for day in week %}
      {% if day == 0 %}
        <li></li>
      {% else %}
        <li>{{ day }}</li>
      {% endif %}
    {% endfor %}
  </ul>
  {% endfor %}

所有看起来都很好(而且重要的是,功能可以点亮):

enter image description here

我现在想要做的是,在满足响应后,对模板上的未归档列表(class =“days”)执行相同的逻辑。我有以下的日子(“周”数组,如果一天包含在月份中,则为0,过度它将月份的日期作为整数,希望这是有意义的):

enter image description here

上面是点击下个月后,所以这对应于二月份的日子。因此对于列表数组中的每个[]列表 - 我想进入,并更新ul中的所有li - 希望这是有道理的。循环中的循环。

1 个答案:

答案 0 :(得分:0)

据我了解,您想在javascript中重新创建您使用django模板制作的内容。

当您使用jQuery时,这应该可行:

// Make this selector more specific if needed
$("ul.days").each(function (i) {
    $(this).find('li').each(function (j) {
        if (weeks[i][j]) {
            $(this).html(weeks[i][j]);
        } else {
            $(this).html('');
        }
    });
});