我最近在HTML中创建了一个输入框
<input type="number" id="aa" onchange="yy()">
<p id="xx"></p>
然后我调用了以下代码:
var gg = document.getElementById("aa").value;
function yy(){
document.getElementById("xx").innerHTML=(gg);
什么也没出现。 但是,如果我将脚本更改为
function yy(){
gg = document.getElementById("aa").value;
document.getElementById("xx").innerHTML=(gg);
}
它奏效了!
我想如果我首先声明变量'gg'(全局),我可以在'yy'函数中使用它们。
任何人都可以帮助我描述这件事。
非常感谢你。
答案 0 :(得分:0)
您仍然可以在gg
功能中使用yy
。但这里的问题是你在gg
内的价值。因为你打电话
var gg = document.getElementById("aa").value;
在页面加载时,输入元素没有任何值,因此gg
的值始终为空。现在,当您更改id="aa"
的值时,您使用gg
的值为innerHTML
并且您总是空白。现在,唯一的解决方法是,由于您的innerHTML
取决于gg
的值(对于id为aa的输入),您必须在change()
函数中包含此值才能获得正确的输出。因此,原因不是您无法访问或获取全局变量的值 - 您可以,但在这种情况下,该值的值不正确。
为了正确验证和理解,这里有一个已经指定id='aa'
值的示例,然后当您更改输入时,您会看到gg
的值:
var gg = document.getElementById("aa").value;
function yy(){
document.getElementById("xx").innerHTML=(gg);
}
&#13;
<input type="number" id="aa" onchange="yy()" value='123'>
<p id="xx"></p>
&#13;
答案 1 :(得分:0)
那是因为你没有将值放在函数中。现在function predicDia(e,a){
mapDimecres.invalidateSize(true);
将始终保持初始值。哪个页面加载为空。
将其放入功能中。一旦函数被触发,就会检索该值。在您的情况下,您在其上添加了var gg
触发器。
因此,当值更改时,函数将在此时运行,并检索输入字段内的值。
如果您要求,您只能得到一些东西。 或者在这种情况下 只有在某些事情要求时,JavaScript才能获得某些内容
在第一种情况下你的功能不会要求一个值。在您的秒钟情况下,onchange
会询问元素JavaScript
value