0

以下のように、jQuery UI が受け入れてアコーディオンを作成するマークアップを生成するスクリプトをまとめようとしています。

<div id="accordion">
    <h3>2012</h3>
    <div>
        <ul>
        <li><a href="somepage.html?year=2012&month=10">October</a></li>
        <li><a href="somepage.html?year=2012&month=9">September</a></li>
        <li><a href="somepage.html?year=2012&month=8">August</a></li>
        <li><a href="somepage.html?year=2012&month=7">July</a></li>
        <li><a href="somepage.html?year=2012&month=6">June</a></li>
        <li><a href="somepage.html?year=2012&month=5">May</a></li>
        <li><a href="somepage.html?year=2012&month=4">April</a></li>
        <li><a href="somepage.html?year=2012&month=3">March</a></li>
        <li><a href="somepage.html?year=2012&month=2">February</a></li>
        <li><a href="somepage.html?year=2012&month=1">January</a></li>
    </ul>
    </div>
    <h3>2011</h3>
    <div>
        <ul>
        <li><a href="somepage.html?year=2011&month=12>December</a></li>
        <li><a href="somepage.html?year=2011&month=11>November</a></li> 
        <li><a href="somepage.html?year=2011&month=10">October</a></li>
        <li><a href="somepage.html?year=2011&month=9">September</a></li>
        <li><a href="somepage.html?year=2011&month=8">August</a></li>
        <li><a href="somepage.html?year=2011&month=7">July</a></li>
        <li><a href="somepage.html?year=2011&month=6">June</a></li>
        <li><a href="somepage.html?year=2011&month=5">May</a></li>
        <li><a href="somepage.html?year=2011&month=4">April</a></li>
        <li><a href="somepage.html?year=2011&month=3">March</a></li>
        <li><a href="somepage.html?year=2011&month=2">February</a></li>
        <li><a href="somepage.html?year=2011&month=1">January</a></li>
    </ul>
    </div>
</div>

年と、2007 年までさかのぼる現在および過去の月を出力する必要があります。そのようなマークアップを作成するには、どうすればよいでしょうか。擬似コード:

var d = new Date();
var yr = Number(d.getFullYear());
for (var i = 2006, i < yr, i++)
{
  //create a H3, div, and a ul
  var mo = d.getMonth();
  //some other for loop on the month to create the li items
  //how to handle date display names?
}

jQuery/Javascript の日付は、常に私のアキレス腱でした。

4

2 に答える 2

1

これが私が思いついたものです。jsフィドル

var div = $("<div>").attr("id", "accordion");
month = [];
month[0] = "January";
month[1] = "February";
month[2] = "March";
month[3] = "April";
month[4] = "May";
month[5] = "June";
month[6] = "July";
month[7] = "August";
month[8] = "September";
month[9] = "October";
month[10] = "November";
month[11] = "December";
var d = new Date();
var yr = Number(d.getFullYear());
for (i = yr; i > 2006; i--) {
    var m = $("<ul>");
    for (j = 1; j <= 12; j++) {
        m.append(
        $("<a>").attr("href", "somepage.html?year=" + i + "&month=" + j).text(month[j - 1]));
    }
    div.append(
    $("<h3>").text(i), m);
}
$(elementToAppendTo).append(div);​
于 2012-10-28T12:07:10.153 に答える
1

これは、あなたの望むことですか??DEMOを試してください:はいの場合はデモに答えてください。ロジックを改善するためにもっと学ぶ必要があります:) jquery append()、一時変数への対応、およびhtmlのパターンの方法を学びましょう

于 2012-10-28T04:32:34.877 に答える