1

このJSページをXMLにリンクしますすべての要素はビューですが、xmlファイルのオーディオタグはhtml5ページのビューではありません..この関数でオーディオファイルを取得してhtml5アウディプレーヤーとして表示する方法を提案してください。

init: function () {

    //jQuery ajax call to retrieve the XML file
    $.ajax({
        type: "GET",
        url: XMLLIST.xml,
        dataType: "xml",            
        success: XMLLIST.parseXML
    }); 

}, // end: init()

parseXML: function (xml) {

    //Grab every single ITEM tags in the XML file
    var data = $('item', xml).get();
    //Allow user to toggle display randomly or vice versa
    var list = (XMLLIST.random) ? XMLLIST.randomize(data) : data;
    var i = 1;

    //Loop through all the ITEMs
    $(list).each(function () {

        //Parse data and embed it with HTML
        XMLLIST.insertHTML($(this));            

        //If it reached user predefined total of display item, stop the loop, job done.
        if (i == XMLLIST.display) return false;
        i++;
    });


}, // end: parseXML()

insertHTML: function (item) {

    //retrieve each of the data field from ITEM
    var url = item.find('url').text();
    var image = item.find('image').text();
    var audio=item.find('audio').text();
    var title = item.find('title').text();
    var desc = item.find('desc').text();
    var html;

    //Embed them into HTML code
    html = '<div class="item">';
    html += '<a href="' + url + '"><image"' + image + '" alt="' + title + '" />';

    html += '<span>' + title + '</span></a>';
    html += '<audio control="control"><span> ' +audio+' </span></audio>';
    html += '<p>' + desc + '</p>';
    html += '</div>';

    //Append it to user predefined element
    $(html).appendTo(XMLLIST.appendTo);

}, // end: insertHTML()


randomize: function(arr) {

    //randomize the data
    //Credit to JSFromHell http://jsfromhell.com/array/shuffle
    for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
        return arr;

} // end: randomize()    

}

4

1 に答える 1

0

AFAIK.each()は、jQuery オブジェクトを反復処理するために使用されます。配列を反復処理する場合は、$.each()

ここにあります

$(list).each(function () {

どちらであるべきか

$.each(list, function () {

list は dom ノードの配列であり、jQuery オブジェクトではないため

于 2012-06-16T00:01:47.417 に答える