2014-02-14 45 views
0

对于为什么我的for循环在我的任何实际输出发生之前显示“undefined”的说法,我很难过。我声明了所有变量,并且使用Inspect Element显示没有语法错误。For循环在迭代输出前产生'undefined'

<!DOCTYPE HTML> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<title>Untitled Document</title> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script> 
    $(function(){ 
    "use strict"; 
     var html, s, vindex; 
     var v = ['alpha::one::uno', 'beta::two::dos', 'gamma::three::tres']; 
     for (vindex = 0; vindex < v.length; vindex++) { 

      s = v[vindex].split('::'); 
      html += '<div class="inline ' + s[0] + '">\n'; 
      html += '<h4>' + s[1] + '</h4>'; 
      html += '<a href="javascript://" class="link">' + s[2] + '</a></div>'; 
     } 
     $("div").append(html); 
    }); 
</script> 
</head> 

<body> 
<div></div> 
</body> 
</html> 

http://jsfiddle.net/a5b6C/1/

+2

Inspect Element允许您浏览和操作DOM;它与JavaScript语法错误无关。您正在考虑JavaScript控制台。 – greenie2600

+0

你是对的。 –

回答

6

未定义的字符串显示,因为htmlundefined

var html, s, vindex; 

var html;基本上是同样的事情var html = undefined;

将其设置为空字符串。

var html = "", s, vindex; 
+0

打扰我,而我砸我的额头。 –