这是我的代码:
var instrukceTexty = [
["Nadpis", "Text instrukce"],
["Nadpis 2", "Text instrukce 2"],
["Nadpis 3", "lorem"]
];
function zobrazInstrukci ( ) {
var obrazovka;
for ( var i = 0; i < instrukceTexty.length; i += 1 ) {
obrazovka += '<div><h1>' + instrukceTexty[i][0] + '</h1>';
obrazovka += '<p>' + instrukceTexty[i][1] + '</p></div>';
}
document.write( obrazovka );
}
zobrazInstrukci(instrukceTexty);
如果在第一个div之前运行它,则文本未定义。我找不到原因。
答案 0 :(得分:6)
因为您要附加到undefined
。
替换此行
var obrazovka;
与
var obrazovka = "";
答案 1 :(得分:1)
您初始化变量&#ob; obrazovka&#39;没有价值,所以从技术上讲,它的值是undefined。然后你将html附加到undefined上。
// equivalent to var obrazovka = undefined;
var obrazovka;
一种解决方案是使用默认值初始化此变量,例如
var obrazovka = "";
或者,如果您能够使用ES2015功能,则将其设置为您的功能的默认参数,例如
function zobrazInstrukci (instrukceTexty = [], obrazovka = "" ) {
for ( var i = 0; i < instrukceTexty.length; i += 1 ) {
obrazovka += '<div><h1>' + instrukceTexty[i][0] + '</h1>';
obrazovka += '<p>' + instrukceTexty[i][1] + '</p></div>';
}
document.write( obrazovka );
}
答案 2 :(得分:0)
变量obrazovka
已声明但未初始化。尝试将未初始化的变量用作字符串将返回字符串'undefined'。
要解决这个问题,只需给它一个字符串值为nothing。 var obrazovka='';
并且您的代码应该有效。
答案 3 :(得分:0)
var instrukceTexty = [
["Nadpis", "Text instrukce"],
["Nadpis 2", "Text instrukce 2"],
["Nadpis 3", "lorem"]
];
function zobrazInstrukci (instrukceTexty) {
var obrazovka='';
for ( var i = 0; i < instrukceTexty.length; i += 1 ) {
obrazovka += '<div><h1>' + instrukceTexty[i][0] + '</h1>';
obrazovka += '<p>' + instrukceTexty[i][1] + '</p></div>';
}
document.write( obrazovka );
}
zobrazInstrukci(instrukceTexty);
缺少函数参数,请尝试此代码