Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript全局变量可以';如果它意味着从HTML元素中提取值,是否不存储这些值?_Javascript_Variables - Fatal编程技术网

javascript全局变量可以';如果它意味着从HTML元素中提取值,是否不存储这些值?

javascript全局变量可以';如果它意味着从HTML元素中提取值,是否不存储这些值?,javascript,variables,Javascript,Variables,好的,我有了这个功能,用户可以用键盘的箭头键左右上下移动苍蝇。下面给出的代码可以工作(我只使用Internet Explorer测试脚本): var coordenadax=300; var coordenaday=250; 函数coordenadas(){ var key=window.event.keyCode; 开关(钥匙){ 案例37:coordenadax=coordenadax-10;断裂; 案例38:coordenaday=coordenaday-10;中断; 案例39:coor

好的,我有了这个功能,用户可以用键盘的箭头键左右上下移动苍蝇。下面给出的代码可以工作(我只使用Internet Explorer测试脚本):


var coordenadax=300;
var coordenaday=250;
函数coordenadas(){
var key=window.event.keyCode;
开关(钥匙){
案例37:coordenadax=coordenadax-10;断裂;
案例38:coordenaday=coordenaday-10;中断;
案例39:coordenadax=coordenadax+10;中断;
案例40:coordenaday=coordenaday+10;中断;
}
mosca.style.left=coordenadax;
mosca.style.top=coordenaday;
}
但是,如果我改变:

<script language="javascript" text="text/javascript">

    var coordenadax=300;
    var coordenaday=250;

function coordenadas(){

var coordenadax=300;
var coordenaday=250;
函数coordenadas(){
致:


var coordenadax=mosca.style.left;
var coordenaday=mosca.style.top;
函数coordenadas(){
甚至:

<script language="javascript" text="text/javascript">

    var coordenadax=document.getElementById('mosca').style.left;
    var coordenaday=document.getElementById('mosca').style.top;

function coordenadas(){

var coordenadax=document.getElementById('mosca').style.left;
var coordenaday=document.getElementById('mosca').style.top;
函数coordenadas(){

为了从div元素中检索这些值,而不仅仅是将它们赋给全局变量,苍蝇根本不会移动,我不明白为什么…

页面加载时会执行JavaScript。因为JS代码在实际标记之前,所以脚本在
#mosca
元素之前执行人类是存在的

将脚本放在

另外,
mosca
对象不会简单地存在-您需要使用
document.getElementById
对其进行设置:

var mosca = document.getElementById('mosca');

定义javascript脚本时,它会“就地”执行(浏览器会按照定义的顺序创建对象并执行代码)。当浏览器执行时:

var coordenadax=document.getElementById('mosca').style.left;
var coordenaday=document.getElementById('mosca').style.top;

id为“mosca”的对象尚未创建(您在脚本之后创建该对象),它会删除一个错误。(请检查开发人员控制台,可能它就在那里)。

在进行此操作时,您需要提前一点停止并抓取。每次从一个memozied样式的对象中离开;例如:var coordenaday=document.getElementById('mosca')).style;…coordenaday.top;哦,哇…很有意义。问题是,我的老师总是把脚本放在标题部分,所以我得出结论,脚本不能放在其他任何地方,特别是正文部分。谢谢!!没问题!JavaScript加载后会立即执行,所以通常情况下,你会想要它最后加载(因此将
脚本
标记放在标记的底部)。把这些新知识带到课堂上,并把你的教授叫出来!这是一个最好的实践,他们肯定会教你。只是顺便说一句,如果你按照定义使用
mosca
,一些浏览器会工作,因为它们使用对象id作为对象本身的引用。但据我所知,这不是一个官方功能。@Guiri that sounds就像Desaroll提到的那样。我不是真正的IE,但这绝对不是标准的。如果它对你有用,那就试试吧——但我怀疑它在FF或Chrome等其他浏览器中是否有效
var mosca = document.getElementById('mosca');
var coordenadax=document.getElementById('mosca').style.left;
var coordenaday=document.getElementById('mosca').style.top;