我正在尝试使用元素id“greeting”和外部java脚本更改h1标记内的文本。我在试图弄清楚如何调用已收集变量的函数init并在下一个函数中使用它时遇到了麻烦。这是我到目前为止所拥有的。
HTML
<head>
<title>Matt Beckley</title>
<script type="text/javascript" src="script1.js"></script>
</head>
<body>
<h1 id="greeting">Welcome!</h1>
</body>
</html>
问题所在的脚本!
window.onload = init;
function init()
{
var fullname=prompt("Please Enter you name!","Anonymous ");
(fullname == "Anonymous")? "Anonymous " : "";
var nickname=prompt("Please Enter you nickname!"," None");
(nickname == "None")? " None": "";
}
function writeGreeting()
{
document.getElementById("greeting").innerHTML= ?????????
}
所以我不知道如何使最后一个函数工作,以便h1标签显示一个名称和一个缺口。 w3schools只显示“字符串”,而不是调用其他功能的能力。有谁知道怎么做?
答案 0 :(得分:1)
如何合并init
和writeGreeting
函数:
window.onload = init;
function init()
{
var fullname=prompt("Please Enter you name!","Anonymous ");
fullname = (fullname == "Anonymous")? "Anonymous " : "";
var nickname=prompt("Please Enter you nickname!"," None");
nickname = (nickname == "None")? " None": "";
document.getElementById("greeting").innerHTML= "Welcome " + fullname + " (" + nickname + ")";
}
P.S。语法的一小部分 - 你可能想要“请输入你的名字”,而不是“请输入你的名字”,昵称提示也是如此。
答案 1 :(得分:1)
为什么不使用.inner 文字呢?
答案 2 :(得分:0)
// Create two GLOBAL variables
var fullname = "";
var nickname = "";
function init() {
fullname = /* ... */
nickname = /* ... */
// pass the nickname on to the greeting function
writeGreeting(nickname);
}
// This function is remain separate, if you wish to call it again
// at a later time before a page-refresh.
function writeGreeting(name) {
document.getElementById("greeting").innerHTML = name;
}
答案 3 :(得分:0)
这样怎么样?
如果你不放,它会显示“欢迎全名!”或“欢迎昵称”或“欢迎匿名!”任何
function init() {
var fullname=prompt("Please Enter you name!");
var nickname=prompt("Please Enter you nickname!");
writeGreeting(fullname||nickname||"Anonymous");
}
function writeGreeting(name){
document.getElementById("greeting").innerHTML= "Welcome "+name+"!";
}
答案 4 :(得分:0)
我喜欢Dominic的解决方案。请记住,您应该小心用户输入的任何数据。在使用之前,我建议使用escape()
函数转义字符串。
e.g。
document.getElementById("greeting").innerHTML= "Welcome " + escape( fullname ) +
" (" + escape( nickname ) + ")";
答案 5 :(得分:0)
试试这个。用ie,chrome和ff测试(全部最新)。
var msg = "Welcome " + fullname + "(" + nickname + ")!";
var greetingElement = document.getElementById("greeting");
if(greetingElement.firstChild == null)
greetingElement.appendChild(document.createTextNode(msg));
else
greetingElement.firstChild.nodeValue = msg;