2014-11-20 2 views
0

Я пытаюсь добавить данные в li динамически, но не могу добавить его. Есть несколько строк данных для добавления. Я получаю мой HTML-код разметки виден на экране .Здесь есть HTML ..Невозможно добавить динамические данные в список в jquery

<div data-role="content"> 
<ul id="ContactList"> 
</ul> 
</div> 

А вот код JQuery.

function onSuccess(contacts) { 
//console.log(JSON.stringify(contacts)) 
$('#ContactList').empty(); 
    $.each(contacts, function(key, value) { 
    if(value.name){ 
     $.each(value.name, function(key, value) { 
      if(key == 'formatted'){ 
       name = value; 
      }      
     }); 
    } 
    if(value.phoneNumbers){ 
     $.each(value.phoneNumbers, function(key, value) { 
      phone = value.value; 
     }); 
    }      
    $('#ContactList').append(' 
    < li>< a href=" #">< h3 class="ui-li-heading">'+name+'< /h3>< div class="ui-li-desc">Club '+phone+'< /div>< /a>< /li>'); 

    $('#ContactList').listview(); 

    } 
+0

попробуйте использовать $ ('# ContactList'). Listview ("refresh"); –

+0

@RamzanZafar OK..Позвольте мне попробовать .. Я сообщу .. –

+0

@sanatanmishra Я нашел проблему и добавил решение ниже. – Rahatur

ответ

1

, кажется, что код отсутствует закрывающие скобки )} к .each функции и HTML-теги имеют < (пробел) сразу после их открытия. попробовать этот код: enter image description here

function onSuccess(contacts) { 
     //console.log(JSON.stringify(contacts)) 
     $('#ContactList').empty(); 
     $.each(contacts, function (key, value) { 
      if (value.name) { 
       $.each(value.name, function (key, value) { 
        if (key == 'formatted') { 
         name = value; 
        } 
       }); 
      } 
      if (value.phoneNumbers) { 
       $.each(value.phoneNumbers, function (key, value) { 
        phone = value.value; 
       }); 
      } 
      $('#ContactList').append('<li><a href="#"><h3 class="ui-li-heading">' + name + '</h3><div class="ui-li-desc">Club ' + phone + '</div></a></li>'); 
     }); 
     $('#ContactList').listview(); 
    } 

рабочий JSFiddle

+0

Этот 'refresh' необходим обязательно.? –

+0

Это когда вы добавляете элементы динамически, согласно [jQuery Mobile documentation] (http://api.jquerymobile.com/listview/#method-refresh). Я думаю, что в вашем случае это не так. –

+0

Прошу прощения, что он не работает. Я получаю такую ​​же HTML-разметку как вывод на экране. –

0

добавить

$('#ContactList').listview('refresh'); 
1

код HTML форматирование не правильно в той строке, где вы строите содержание. Теги html нарушены.

Вместо:

$('#ContactList').append(' 
    < li>< a href=" #">< h3 class="ui-li-heading">'+name+'< /h3>< div class="ui-li-desc">Club '+phone+'< /div>< /a>< /li>'); 

Используйте следующий:

$('#ContactList').append('<li><a href="#"><h3 class="ui-li-heading">'+name+'</h3><div class="ui-li-desc">Club '+phone+'</div></a></li>'); 
+0

Это не единственная проблема. Проверьте мое решение ниже с помощью jsfiddle. –

+1

@EdanFeiles Первоначальный вопрос: «Я получаю свой код разметки html, видимый на экране». Это было исправлено в прилагаемом решении. – Rahatur

+0

Правильно, но это не единственная проблема, которую он имеет. –

-1

Попробуйте это!

function onSuccess(contacts) 
    { 

    var h3 = $('<h3 class="ui-li-heading"></h3>'); 
    var div = $('<div class="ui-li-desc"></div>'); 
    var ac = $('<a href=" #"></a>'); 
    var li = $('<li></li>'); 

    $('#ContactList').empty(); 
     $.each(contacts, function(key, value) { 
     if(value.name){ 
      $.each(value.name, function(key, value) { 
       if(key == 'formatted'){ 
        name = value; 
       }      
      }); 
     } 

    if(value.phoneNumbers){ 
      $.each(value.phoneNumbers, function(key, value) { 
       phone = value.value; 

     }); 

    } 

     h3.html(name); 
     div.html(phone); 

     ac.html(h3+div); 

     li.html(ac); 



     $('#ContactList').append(li); 
     $('#ContactList').listview('refresh'); 
     }); 
    } 
+0

Будет ли этот код работать с мобильным приложением jquery тоже? Потому что я использую его для тех же ... Спасибо .. –

+0

Есть ли какие-либо изменения, необходимые для кода HTML-маркировки, который я опубликовал в вопросе? Потому что мой isseu тот же при попытке все эти решения тоже. –

+0

Теперь я могу видеть экран .. Претензионная ошибка удалена, но все еще не в состоянии видеть какие-либо данные в списке контактов. Почему? Я получаю (точка) [Объект объекта] [Объект объекта] –

Смежные вопросы