我希望我的代码能够通过document.write()替换用户看到的当前HTML页面。它确实取代了HTML页面,它只是没有显示我希望它显示的文本。如果我使用我的代码通过addElement()函数添加元素,
mdl-tabs__tab-bar
它采用用户放置的参数来创建有效标记,例如
function addElement(a, b) {
var startTag, tagValue, endTag, finalTag;
// htmlify
if (b === undefined) {
startTag = "<p>";
endTag = "</p>";
} else {
startTag = "<" + b + ">";
endTag = "</" + b + ">";
}
finalTag = startTag + tagValue + endTag;
eio.push(finalTag);
};
然后将其解析为HTML标记(此处填写变量),
addElement("This is a valid h1 tag.", "h1");
并将其推送到名为eio的数组中(变量再次填充)。
var finalTag = "<" + "h1" + ">" + "This is a valid h1 tag." + "</" + "h1" + ">"
在调用displayElements()之前不使用此数组,其中我使用for循环将所有不同的字符串放在一起。以下是我的表现方式:
eio.push("<h1>This is a valid h1 tag.</h1>");
再次使用我们的例子,finalString看起来应该是这样的
function displayElements() {
finalString = "<!DOCTYPE html><html><head><title>Hello World!</title></head><body>";
for (i = 0; i === eio.length; i++) {
finalString += eio[i];
}
finalString += "</body></html>";
document.write(finalString);
};
当我们在document.write()函数中使用它时。这个应给我们留下一个HTML页面,其中标有&#34;这是一个有效的h1标签。&#34;用粗体字体,但它只留下一个空白屏幕。然而,有一件有趣的事情是,当我们调用函数时标题会更新,但页面仍然是空白的。
You can see the entire code here,and go to the example website here。
答案 0 :(得分:1)
sabithpocker和我已经指出了两个问题。我会总结这些来做出这个答案。
您的addElement
方法接受参数a
并且不执行任何操作。相反,您使用的是局部变量tagValue
。您可以通过将a
的值分配给tagValue
来修复它。
function addElement(a, b) {
var startTag, endTag, finalTag;
var tagValue = a;
// htmlify
if (b === undefined) {
startTag = "<p>";
endTag = "</p>";
} else {
startTag = "<" + b + ">";
endTag = "</" + b + ">";
}
finalTag = startTag + tagValue + endTag;
eio.push(finalTag);
};
第二个问题是displayElements
方法的for循环中的拼写错误。它应该是
for (i = 0; i < eio.length; i++) {
finalString += eio[i];
}