首页 > 解决方案 > 变量未定义 - 范围问题?- JavaScript

问题描述

在控制台中,它使用下面的代码给我错误“位置未定义”..有什么想法吗?

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 获取元素不能接受函数?我知道这可能是一个愚蠢的问题,但请原谅我:)

标签: javascriptvariablesscope

解决方案


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

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

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


推荐阅读