我正在调用名为“ 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);">


因此,现在它通知capitalwindow.capital。如果在不同的浏览器中进行测试,则可能会得到不同的结果。

JSFIDDLE DEMO

Chrome显示:


  本地:[对象HTMLInputElement]
  
  GLOBAL:函数capital(){}

07-24 21:53