Переменная не определена - Scope Issue? - JavaScript

1

в консоли он дает мне ошибку "позиция не определена", используя код ниже.. любые идеи?

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
}

Может быть, элемент by Id can not принимает функцию? Я знаю, что это может быть глупый вопрос, но простите меня :)

  • 2
    Я думаю, что вам нужно, это GetPosition().appendChild(img);
  • 2
    img не определен нигде в предоставленном вами коде.
Теги:
scope
variables

2 ответа

1
Лучший ответ

Похоже, что getPosition - это функция, которая выбирает нужный элемент, поэтому попробуйте вызвать эту функцию:

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

Нет ничего плохого в передаче строки, созданной функцией getElementById

  • 0
    Я застрял на этой проблеме около 3 часов. Вы мой друг, мужчина (или женщина)! Еще раз спасибо
0

Причина, по которой он говорит, может быть несколько проблем, самое простое, поскольку у вас нет "Y1X1" в качестве HTML-кода.

Если ваша функция вернет строку, она сможет использовать getElementById(). Если вы не уверены в объеме, вы можете перейти в начало своего кода и использовать var position; однако это скорее всего не проблема.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню