从加载的文本中获取信件

时间:2013-03-09 11:02:18

标签: javascript

我有一个代码。它从中加载文本:

<script type="text/mygamelevel" id="level1" src="levels/level1.txt">
        000122341
        124235245
        154456567
</script>

mapa = loadFromFile("level1");

并且loadFromFile:

function loadFromFile(id) {
var level = document.getElementById(id).text;
var lines = level.split("\n");
for (var i = 0; i < lines.length; i++) {
    var line = lines[i];
    if (!line.trim())
        continue;
    var letter = line.charAt(2);
    alert("Second: " + letter + " ");
}
}

但它不起作用:/浏览器中的警报为空。 为什么呢?

2 个答案:

答案 0 :(得分:1)

我纠正了你的功能:

function loadFromFile(id) {
    var level = document.getElementById(id).text;
    var lines = level.split("\n");
    //lines.length - 1 to parse each lines from 0 to 8 (9 numbers)
    for (var i = 0; i < lines.length - 1; i++) {
        var line = lines[i].trim(); //trim to remove white spaces
        if(line.length)  //if the line is not empty
        {
            var letter = line.charAt(1); //second letter
           alert("Second: " + letter + " ");
        }
    }
}

请注意,数组的开头为0,因此第二个字母为charAt(1),您必须从0开始计算,而不是从1开始计算:

000122341 =&gt; 9个数字

for 1 to 10 =&gt; 9个数字

for 0 to 10 =&gt; 10个号码

for 0 to (10 - 1) =&gt; 9个数字

有关工作示例,请参阅fiddle

答案 1 :(得分:0)

问题是你的变量line在开头就包含空格,就像..000122(每个点都是一个空格)你需要删除那些额外的空格来获得你想要的值。 / p>