jquery
2013-04-28 107 views 0 likes 
0

我想从MySQL异步加载数据。首先,在页面加载我多个div添加到页面:选择元素动态添加

$(document).ready(function(){ 
     // Layout 
     var main = $("#main-div"); 
     for(var i = 0; i < array.length; ++i) { 
      main.append("<div class='container'><a href=\"blah\">"+array[i]+"</a><div class='button-container'><span id='playcount_"+array[i]+"' class='playcount' style='margin-right:5%'>nope</span></div></div>"); 
     } 
     // Get info for each sound in array 
     for(var i = 0; i < array.length; ++i) { 
      $.post("script/php_getinfo.php", { "file": array[i] }, updatePlaycount, "json"); 
     } 
}); 

container的div添加了spanplaycount_A一个id,playcount_B等的div添加后,POST每件制作在数组中并在成功时调用updatePlaycount

updatePlaycount尝试选择元素,并插入文本到span

function updatePlaycount(data) { 
    $('#playcount_'+data.name).text(data.playcount); 
} 

函数正确获取data.namedata.playcount领域(例如A1),但由于某种原因的jQuery找不到#playcount_A!当然他们已经被添加了,因为没有加载涉及添加div ...

+2

您正在调用'array.length',但它在代码中没有声明? – 2013-04-28 18:22:57

+0

对不起,有太多的代码要在这里发布。但正如我所说,divs得到了正确的布局。该数组只是像'A,B,C'的字符串 – Snailer 2013-04-28 19:29:11

回答

2

它适用于我。看起来不像那么多代码演示。小提琴可以通过方式使用AJAX,所以如果你有一个(大)库,包括你可以做到这一点

DEMO

$(document).ready(function() { 
    // Layout 
    var main = $("#main-div"), 
     array = ["A", "B", "C"], 
     updatePlaycount = function (data) { 
       console.log(data); 
       var $playct = $('#playcount_' + data.name); 
       console.log($playct); 
       $playct.text(data.playcount); 
      } 

    function ajaxI(i,arr){ 
     var J= JSON.stringify({ 
        "name": arr[i], 
         "playcount": (i+1)+'' 
       }); 
     console.log(J) 
    $.ajax({ 
      type : "POST", 
      dataType: "json", 
      url: "/echo/json/", 
      data: { 
       json: J, 
       delay: 3 
       }, 
      success: updatePlaycount 
     }); 
    } 

    for (var i = 0; i < array.length; ++i) { 
     main.append("<div class='container'><a href=\"blah\">" + array[i] + "</a><div class='button-container'><span id='playcount_" + array[i] + "' class='playcount' style='margin-right:5%'>nope</span></div></div>"); 
    } // end for 

    // Get info for each sound in array 
    for (var j = 0; j < array.length; ++j) { 
     ajaxI(j,array); 
    } // end for 
}); // end ready 

请发送应付...,J检查/ K

+0

我会尽快检查出来! – Snailer 2013-04-29 20:09:56

+0

然后你会对所有帮助正确的事情投票吗? :D – gillyspy 2013-05-01 01:13:48

+0

当然!我今天下班后会有时间。 – Snailer 2013-05-01 17:00:00

相关问题