我正在调用名为“ capital()”的函数,但该函数不起作用,并且“ capita”正在起作用。
它是js中的关键字还是这是什么?
这是代码看到它,测试它
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HTML Select Element</title>
<script type="text/javascript">
function capita(){
alert('yes');
c = new Array("Islamabad", "Tehran", "Bejing", "New Delhi", "Kabul");
var i;
i = document.f1.country.selectedIndex;
document.f1.capital.value=c[i];
}
</script>
</head>
<body>
<h3>Countries and Capital</h3>
<form name="f1" method="post">
The capital of
<select name="country" id="country" onChange="capita();">
<option selected>Pakistan
<option>Iran
<option>China
<option>India
<option>Afghanistan
</select>
is <input type="text" name="capital" value="Islamabad"/>
</form>
</body>
</html>
最佳答案
capital
是对输入元素的引用。
<input type="text" name="capital" value="Islamabad"/>
这是因为使用内联处理程序时,某些DOM元素已插入变量作用域链中。究竟插入哪些元素在某种程度上取决于浏览器。
如果将
onchange
元素的select
处理程序更改为此:<select name="country" id="country" onChange="alert(capital);">
您会看到它发出警报:
"[object HTMLInputElement]"
...或类似的东西。
JSFIDDLE DEMO
这是一个更新的示例,可以像这样更改您的内联处理程序:
<select name="country" id="country" onChange="alert('LOCAL: ' + capital +
'\n\nGLOBAL: ' + window.capital);">
因此,现在它通知
capital
和window.capital
。如果在不同的浏览器中进行测试,则可能会得到不同的结果。JSFIDDLE DEMO
Chrome显示:
本地:[对象HTMLInputElement]
GLOBAL:函数capital(){}