无法在jquery中将动态数据添加到列表中

时间:2014-11-20 12:27:59

标签: javascript jquery html

我正在尝试动态地将数据添加到li但无法添加它。要添加多行数据。我在屏幕上看到我的html标记代码。这是HTML ..

<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();

   }

4 个答案:

答案 0 :(得分: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

答案 1 :(得分: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>');

答案 2 :(得分:0)

添加

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

答案 3 :(得分:-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');
      });
    }