对于在迭代输出之前生成'undefined'的循环

时间:2014-02-14 19:24:39

标签: javascript jquery iteration

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

<!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/

1 个答案:

答案 0 :(得分:6)

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

var html, s, vindex;

var html;var html = undefined;

基本相同

将其设置为空字符串。

var html = "", s, vindex;