当我提醒数组引用时,我得到的是字符而不是单词

时间:2016-03-21 00:33:11

标签: javascript

在第一个警报(数组[0])上,我得到一个完整的单词。在循环之后的下一个警报中,我只获得每个引用的字符。我在这里找到了一个类似的问题,但没有答案。

var listNumbers = document.getElementById("someNames").getElementsByTagName("li");
    for(var i = 0; i<listNumbers.length; i++) {
        z = (listNumbers[i].innerHTML);
        array = z.split(" ");
        alert(array[0]);
        firstArray = firstArray + '"' + array[0] + '"' + ", ";
        lastArray = lastArray + '"' + array[1] + '"' + ", ";
        phoneArray = phoneArray + '"' + array[2] + '"' + ", ";

    }   
    alert(firstArray[1]);

1 个答案:

答案 0 :(得分:1)

您正在将firstArray变量构建为字符串,而不是数组。当您使用[0]访问字符串时,您将获得字符串中该位置的字符,而不是整个单词。

如果您希望能够访问单词,则需要将其声明为数组并使用.push()向其添加单词。

var listNumbers = document.getElementById("someNames").getElementsByTagName("li");
var arrayOfFirstNames = [];
var arrayOfLastNames = [];
var arrayOfPhoneNumbers = [];
for(var i = 0; i<listNumbers.length; i++) {
    z = (listNumbers[i].innerHTML);
    array = z.split(" ");
    alert(array[0]);
    arrayOfFirstNames.push('"' + array[0] + '"');
    arrayOfLastNames.push('"' + array[1] + '"');
    arrayOfPhoneNumbers.push('"' + array[2] + '"');

}   
alert(arrayOfFirstNames[0]);

我没有你的HTML,所以我没有测试过这段代码,但如果你想要的只是3个名字,姓氏和电话号码数组,你可以使用方括号表示法。