为什么DataTable不显示我的表

时间:2016-11-02 15:32:12

标签: javascript jquery html datatables

我有一个包含2个条目的对象数组。 DataTable现在提供错误但不显示表。我有类似的构造,似乎工作正常,但由于某种原因,这个没有: HTML:

<form id=rparesponses class="hideme rpadealers">
    <table id="responseTbl" class="table table-striped table-border">

    <thead>
     <tr>
      <th>Dealer Email</th>
      <th>MesgID</th>
      <th>Name</th>
      <th>Description</th>
      <th>Price</th>
      <th>Accept CC</th>
      <th>Delivery</th>
      <th>Rating</th>
      <th>Place Order</th>
    </tr>
     </thead>

   </table>
 </form>

JQuery的:

function displayResponses(responses)
         {

         //  var count=rpaResponses.length;
          alert("responses.name: "+responses[0].name);

           $('#responseTbl').DataTable({
            data:    responses,
                 'sort': false,
                 'searching': false,
                 'paging': true,
            columns:
             [
              {'data': 'email'},
              {'data': 'mesgid'},
              {'data': 'name'},
              {'data': 'description'},               
              {'data': 'price'},
              {'data': 'ccard'},
              {'data': 'delivery'},
              {'data': 'rating'},
              {'data': 'order'}
             ],
            columnDefs:
             [
              {'targets': 6,
                'render': function(data,type,full,meta)
                {
                 var pform='<form action="javascript: this.preventDefault"><select name="deliver"><option value="Pickup">Pickup</option><option value="Delivery">Delivery</option></select></form>';

                 if(data)
                   return data;
                 else return pform;
                  }
              },

              {'targets': 8,
                  'render': function(data,type,full,meta)
                  {

                  return '<button id="order" type="" class="btn btn-primary btn-details">Order</button>';

                  }
               }
            ]

           });

         }  //end of display responses

对displayResponses的调用是

socket.on('rparesponse', function(data)
          {

           var rpaResponses=JSON.parse(data);

          alert("rpaResponses.length: "+rpaResponses.length);
          alert("rpaResponses.name: "+rpaResponses[0].name);

        if(rpaResponses.length>0)
             localStorage.messageid="";

          displayResponses(rpaResponses);

           $('#dealers').hide();
           $('#rpaResponses').show();
           $('#rpaview').hide();
           $('#rpawait').hide();


          });

使用Devtools,我可以确认传递的arg“response”是一个对象数组。见下文:

 rpaResponses: Array[2]
    0
    :
    Object
    ccard
    :
    "true"
    delivery
    :
    "false"
    description
    :
    "Fan Belt for BMW-x5 2012 model e"
    email
    :
    "bert123@mymail.com"
    mesgid
    :
    "ccc89e"
    name
    :
    "Peters Auto "
    order
    :
    false
    price
    :
    "6000"
    rating
    :
    "5"
    __proto__
    :
    Object
    1
    :
    Object
    ccard
    :
    "true"
    delivery
    :
    "false"
    description
    :
    "Fan Belt for BMW-x5 2012 model e"
    email
    :
    "peter123@gmail.com"
    mesgid
    :
    "ccc89e"
    name
    :
    "Peters Auto "
    order
    :
    false
    price
    :
    "5000"
    rating
    :
    "5"
    __proto__
    :
    Object
    length
    :
    2

我正在使用Chrome 54.28 ...... Firefox中存在同样的问题。我正在使用nodejs,socketio,javascript和jquery .....服务器端是可以的,它将表发送到套接字ok ... JSON.stringified然后到达JSON.parse。我还检查了SO之前关于这个问题的问题......没有适用。

任何人都可以告诉我我的错误是什么吗?....也许我的目光正在发生!...我说我是这个人的新手!...我是。

1 个答案:

答案 0 :(得分:0)

语法错误...将$(#rpaResponse).show改为$(#rparesponse).show。