给功能交替输出

时间:2014-08-17 11:13:37

标签: javascript function variables

<html>
<head>
<script>
function dogName()
{
  var rand = alert("Clint.");
  var rand = alert("Bee.");
  var rand = alert("Copper.");
}
</script>
</head>
<body>
<form>
<input type="button"       value="RandName" onClick='dogName()'>
</form>
</body>
</html>

在此代码中,函数dogName()有三个变量:ClintBeeCopper。如果你点击按钮(RandName),你会得到一个从上面列出的函数中选择的随机名称。我到处寻找答案,但无济于事。提前谢谢!

2 个答案:

答案 0 :(得分:3)

首先,您的函数只有一个变量rand will be undefined alert() return没有function dogName () { var names = ['clint','Bee','Copper']; return names[Math.floor(Math.random() * names.length)] } var name = dogName(); console.log(name); 任何调用上下文。

要返回随机名称,请执行以下操作:

id

JS Fiddle demo

稍微更新的演示,用于显示元素中的输出(由function dogName () { var names = ['Clint','Bee','Copper'], index = Math.floor(Math.random() * names.length), chosen = names[index]; document.getElementById('output').value = chosen; return chosen; } 标识):

<form>
    <input type="button" value="RandName" onClick='dogName(this)' />
    <label>The generated dog-name is: <input id="output" readonly="readonly" /></label>
</form>

适用于以下HTML:

onclick

JS Fiddle demo

此外,通常最好避免在HTML中使用事件处理属性(onfocusonchangefunction dogName () { var names = ['Clint','Bee','Copper'], index = Math.floor(Math.random() * names.length), chosen = names[index]; document.getElementById('output').value = chosen; return chosen; } var button = document.querySelector('input[value="RandName"]'); button.addEventListener('click', dogName); 等),这个概念是“不引人注目的JavaScript”;相反,考虑在JavaScript本身处理事件绑定(这种方式几乎都在同一个地方,使维护和更改更容易(这在某些时候通常是不可避免的)。也就是说,这是一种适用于大多数现代的方法浏览器(包括从版本9开始的IE):

{{1}}

JS Fiddle demo

参考文献:

参考书目:

答案 1 :(得分:1)

<html>
<head>
<script>
function dogName()
{
var rand = [ 'Clint', 'Bee', 'Copper' ];
alert(rand[Math.floor(Math.random()*rand.length)]);
}
</script>
</head>
<body>
<form>
<input type="button"       value="RandName" onClick='dogName()'>
</form>
</body>
</html>

创建一个数组并选择一个随机元素。