2012-09-16 102 views
0

我有一塊jquery拖動頁面的值。其中一個元素是根據表單輸入動態創建的數據屬性。它返回值,但在第一個循環中粘貼「undefined」的前面。JQuery數據選擇器返回值+ undefined

培訓相關代碼如下...

var get_files_split=get_files.split("*^*"); 
     var files_count=get_files_split.length-1; 
     if(files_count!=0) 
     { 
      $('.uploaded_files').html(""); 
      var app_files=""; 
      for(var y=0;y<files_count;y++) 
      { 
       var files_split=get_files_split[y].split("|"); 
       app_files+="<div class='upfile_holder'>"; 
       app_files+="<div class='f_h'><span class='fil1' data-this_file='"+files_split[0]+"'>"+files_split[1]+"</span> (<span class='fil5'>"+files_split[6]+"</span>)</div>"; 
       app_files+="<div class='f_h fil2'>"+files_split[2]+"</div>"; 
       if(files_split[4]!="") 
       { 
       app_files+="<div class='f_h'>&pound;<span class='fil3'>"+files_split[4]+"</span> <span class='fil4'>"+files_split[5]+"</span></div>"; 
       } 
       if(files_split[3]!="") 
       { 
        app_files+="<div class='f_notes'>"; 
        app_files+="<p class='fil6'>"+files_split[3]+"</p>"; 
        app_files+="</div>"; 
       } 
       app_files+="</div>"; 


      } 
      $(app_files).appendTo('.uploaded_files'); 
     } 

這會將頁面

JQuery的是重新選擇數據如下的數據...

var files_inform; 
if($('.upfile_holder').length) 
{ 
    $('.upfile_holder').each(function(){ 
      var file_ids=$('.fil1', this).data('this_file'); 
      var file_name=$('.fil1', this).text(); 
      var file_type=$('.fil5', this).text(); 
      var file_priority=$('.fil2', this).text(); 
      var file_price=$('.fil3', this).text(); 
      var file_tender=$('.fil4', this).text(); 
      var file_notes=$('.fil6', this).text(); 
      files_inform+=file_ids+"|"+file_name+"|"+file_type+"|"+file_priority+"|"+file_price+"|"+file_tender+"|"+file_notes+"*^*"; 
      alert(files_inform); 
     }); 
} 

原因用於重新選擇數據的是附加部分包含在與提取時不同的功能中。

無法弄清楚它爲何未定義。

+0

'file_ids'打印出來對你沒有定義? – verisimilitude

+0

它創建它的第一個實例開始於未定義加上正確的數據屬性。所有其他選擇器的工作 - 例如'undefined234 |第一個文本|第二個文本|等... – Sideshow

回答

1

我已經找到了問題: -

var files_inform; 

應該是 - 只需通過聲明的變量

var files_inform=""; 

似乎意味着這第一狀態未定義,而將其聲明爲空意味着它不包含任何內容。

1

當循環開始時,files_inform變量等於undefined,然後開始向其附加字符串值。 undefined + "SomeString""undefinedSomeString"。初始化files_inform爲空字符串:

var files_inform = ''; 
+0

謝謝 - 剛剛意識到這一點,因此我的同時發佈:) – Sideshow