0

HTML データから自動的に配列を定義する際に問題があります。

ここに私のデータがあります:

<div id="events">
    <div id="blabla" data-title="Five K for charity" data-date="01/13/2013"></div>
    <div id="bleble" data-title="Dinner" data-date="01/25/2013"></div>
    <div id="Div1" data-title="Meeting with manager" data-date="01/01/2013"></div>
</div>

そして、次のような配列を定義したい:

var events = [
        { Title: "Five K for charity", Date: new Date("01/13/2013") },
        { Title: "Dinner", Date: new Date("01/25/2013") },
        { Title: "Meeting with manager", Date: new Date("01/01/2013") }
    ];

次のようにデータを取得できます。

$("#events > div").each(function (index) {
        console.log("{ Title: " + "\"" + $(this).data("title") + "\", " + "Date: new Date(\"" + $(this).data("date") + "\") }");
    });

しかし、それらをその配列に「印刷」する方法がわかりません。それを行う方法はありますか?

どんな答えでも嬉しいです:-)

4

2 に答える 2

4
var events = [];

$("#events > div").each(function (index) {
    events.push({
        Title: $(this).data("title"),
        Date: new Date($(this).data("date"))
    })
});
于 2013-01-29T13:35:02.947 に答える
1

現時点で行っていることは、それらを壊れやすい JSON 形式として形成することです。

代わりに、オブジェクト リテラルを直接作成する必要があります。

$("#events > div").each(function (index) {
   var obj = { 
       Title: $(this).data("title"), 
       Date: new Date($(this).data("date")) 
   };
});

そして、それを配列で取得するには、 jQuerymap()を使用できます。

var ar = $("#events > div").map(function (index) {
   return { 
       Title: $(this).data("title"), 
       Date: new Date($(this).data("date")) 
   };
});
于 2013-01-29T13:36:25.360 に答える