2014-08-29 18 views
0

這段代碼不工作,我想這是因爲.join('')在jquery中不起作用,但我找不到任何似乎合法的解決方案。謝謝你的幫助。如果需要,我可以展示我在我的HTML文件:如何使jQuery中的.join('')

 <form id="img_search"> 
      <input type="file" id="files" name="files[]" multiple/> 
      <output id="list"></output> 
     </form> 

JS代碼:

$("#files").bind('change', function() { 
     var files = evt.target.files; // FileList object 

     // files is a FileList of File objects. List some properties. 
     var output = []; 
     for (var i = 0, f; f = files[i]; i++) { 
      output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ', 
        f.size, ' bytes, last modified: ', 
        f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a', 
        '</li>'); 
     } 

     $("#list").html('<ul>' + output.join('') + '</ul>');  
}); 
+1

jQuery的沒有按」 t對'Array.prototype.join'做任何事情 – Paulpro 2014-08-29 14:03:28

+1

嘗試在'.push()'中連接字符串時使用+而不是a。 – DNACode 2014-08-29 14:03:33

+0

@MrHunter我沒有看到你正在談論的'.'。 – Barmar 2014-08-29 14:06:47

回答

3

你忘了傳遞事件回調 - jsFiddle

$("#files").bind('change', function(event) { 
     var files = event.target.files; 
}); 
+0

這確實是他或她的複製粘貼的問題。缺少事件參數。 – buley 2014-08-29 14:12:32

+1

您也可以使用'this.files',因爲jQuery總是將'this'在其事件處理程序中綁定到目標。 – Barmar 2014-08-29 14:17:23

+0

仍然不起作用 – Alexandra 2014-08-29 14:18:14