变量未定义 - 范围问题? - JavaScript

时间:2018-06-09 20:53:54

标签: javascript variables scope

在控制台中,它给我错误'位置未定义'使用下面的代码..任何想法?



var x = 1;
var y = 1;

function getyx(y, x) {
	var yx = 'Y' + y + 'X' + x ;
	return yx;
}

function getPosition() {
  var position = document.getElementById(getyx(y,x));
	return position;
}

function moveSprite() {
	position.appendChild(img); //error occurs here
}




也许通过Id接受一个函数获取元素? 我知道这可能是一个愚蠢的问题,但原谅我:)

2 个答案:

答案 0 :(得分:1)

看起来getPosition是选择所需元素的函数,因此请尝试调用该函数:

function moveSprite() {
  const position = getPosition();
  position.appendChild(img);
}

将函数创建的字符串传递给getElementById

绝对没有错

答案 1 :(得分:0)

  

它说位置可能是一些问题的原因,最简单的是你没有“Y1X1”作为HTML ID。

看到你的函数返回一个字符串,它就可以使用getElementById()。如果您不确定范围,可以转到代码的顶部并使用var position;,但这很可能不是范围问题。