ajax刷新div与json循环

时间:2014-09-12 10:23:55

标签: javascript jquery html ajax json

我有这个接收json var。

的ajax函数
 $.ajax({ 
                type: "POST",
                url: "@Url.Action("FilterCheck","Operatore")",
                datatype: "json",
                traditional: true,
                data: { 'mycheck': mycheck, 'idprot': idprot, 'id': '@Model.id' },
                success: function (response) {
                    $('#external-events').empty(); // clear existing items
                    $.each(response, function (index, item) {
                        var div = $('<div class="col-lg-3"><div class="external-event"></div></div>'); // Create new element
                        div.text(item.id + ' ' + item.nome + ' ' + item.cognome); // Set inner text
                        $('#external-events').append(div); // add the new element

                },

我会刷新这个HTML div:

<div id='external-events'>

              @foreach (HAnnoZero.Repositories.utente item in ViewBag.Utenti)
        {
            <div class='col-lg-3'><div class='external-event'>@item.id- @item.cognome @item.nome</div></div>    
        }   </div>  

使用jquery函数&#34;每个&#34;我为更多元素json做循环。 以这种方式不工作,只写第一个div class =&#39; col-lg-3&#39;而不是第二个。我该怎么办? 谢谢

1 个答案:

答案 0 :(得分:1)

你的问题在这里:

div.text(item.id + ' ' + item.nome + ' ' + item.cognome); // Set inner text

你用col-lg-3类声明你的div,里面有另一个div外部事件。 当你使用div.text()时,jquery将替换col-lg-3的内容,而不是外部事件。

你应该这样做:

div.find('.external-event').text(item.id + item.nome + item.cognome);

EDIT 或直接:

var div = $('<div class="col-lg-3"><div class="external-event">' + item.id + ' ' + item.nome + ' ' + item.cognome + '</div></div>'); // Create new element
$('#external-events').append(div); // add the new element