的jQuery选择添加额外的行

问题描述:

我有一个小的Ajax调用:的jQuery选择添加额外的行

$.ajax({ 
      type:'POST', 
      dataType: 'json', 
      url: 'inc/getfunctions.php?q='+l_id+'&func=load_po', 
      success:function(data){ 
       //alert ('hi'); 
       if (data.po_num) { 
       $('#po_num_s').append($('<option>').text('Select a PO').attr('value', 0)); 
       var po_num = data.po_num; 
       var $subType = $("#po_num_s"); 
       $.each(data, function() { 
        $subType.append($('<option></option>').attr("value", data.l_id).text(data.po_num)); 
       }); 
       } 
      } 
      }); 

它apending 2行:提前

<'option value="11">112212<'/option>

<'option value="11">112212<'/option>

是输出 谢谢

+3

什么是问题? – 2014-10-01 19:33:14

+0

我只想要1选择,它只在数据库中一次 – 2014-10-01 19:35:04

+2

您是否尝试过没有.each功能? – adanot 2014-10-01 19:35:16

$ .each func它将采用数组或对象并迭代其项目,同时将项目键和值作为参数提供给回调。像这样:

$.each(["aaaa", "bb", "ccc"], function(key, value){ 
    console.log(value.length); 
}); 

// Will output: 
// 4 
// 2 
// 3 

但是你没有使用每个循环的东西有用,因为你没有收到回调函数中的任何项目。你得到2行的唯一原因是你的data对象只有2个键。尝试在同一地点将另一属性data为您的评论警告,就像这样:

...... 
success:function(data){ 
    //alert ('hi'); 
    data.foo = "bar" 
    if (data.po_num) { 
...... 

,并观看各环路去三轮。