我正在尝试使滚动文本功能,但在Chrome控制台中出现错误:“ nasArray [i] .shift不是函数”。怎么了?
var text = 'Milica';
var text1 = 'Danka';
var text2 = 'Marko';
var stext = text.split('');
var stext1 = text1.split('');
var stext2 = text2.split('');
var nasArray = [text, text1, text2];
var i = 0;
var scroll = document.getElementById('scroll');
function start() {
if (nasArray[i].length > 0) {
scroll.innerHTML += nasArray[i].shift();
setTimeout(start, 200);
} else {
i++;
if (i > 2) {
i = 0;
}
scroll.innerHTML = '';
start();
}
}
start();
答案 0 :(得分:1)
shift()
是method of Arrays,而不是字符串。因为您正在索引nasArray[i]
引用中的字符串,所以类型不匹配。
尝试
改为scroll.innerHTML += nasArray.shift()
答案 1 :(得分:1)
nasArray [i]不是数组。这些元素是字符串。请改用数组的shift函数。
编辑:您也可以执行Luca在评论中建议的操作。 var nasArray = [stext, stext1, stext2]
。这将起作用,因为stext
,stext1
等是由split函数创建的,因此是数组。
答案 2 :(得分:0)
您尝试在字符串而不是数组上调用.shift()
。
如果要删除每个单词的第一个字母,则应使用拆分后的单词构建数组:
var nasArray = [stext, stext1, stext2];
如果要从nasArray
中删除第一个单词,只需在.shift()
而不是nasArray
上调用nasArray[i]
。