2014-08-29 47 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