Проблема
как правильно удалить изображение с помощью jquery / javascript, используя его координату?
Ручка
Код и объяснение
Я объявил один глобальный массив объектов
const items=[
{
name: "axe",
image: "https://image.ibb.co/n1hTEe/icons8_small_axe_64.png",
hit: 3,
actualPosition: {
row: 0,
cell: 0
}
},
{
name: "scythe",
image: "https://image.ibb.co/nqpJ2z/if_holidays_scythe_1459435.png",
hit: 4,
actualPosition: {
row: 0,
cell: 0
}
},
{
name: "sword",
image: "https://image.ibb.co/jXzuLK/icons8_sword_48.png",
hit: 2,
actualPosition: {
row: 0,
cell: 0
}
},
С помощью функции ниже можно «поймать» объект, относительное изображение объекта появится в правом верхнем поле первого игрока в правой части рядом с текстом.
<p>Health:</p>
<p>Mana:</p>
если персонаж и объект имеют одинаковые координаты, у персонажей будет относительный бонус объектов, и мы запустим функцию для удаления изображения (и координат) объекта с карты.
function catchAnObjects(){
let rowChar = character.actualPosition.row,
cellChar = character.actualPosition.cell,
itemRow = 0,
itemCell = 0;
for(var i = 0; i<items.length; i++){
itemRow = items[i].actualPosition.row;
itemCell = items[i].actualPosition.cell;
if (itemRow === rowChar && itemCell === cellChar){
character.hit = character.hit + items[i].hit;
$("#itemPlayerOne").attr("src",items[i].image);
removeItem(items[i]);
break;
};
};
};
Объект должен исчезнуть с карты, но не из div персонажа, поэтому я попробовал это,
function removeItem(item){
let coord=item.actualPosition;
var itemImage = $(item.name);
var row = $($("#tableGame tr")[coord.row]);
var cell = $($("td", row)[coord.cell]);
var tile = $(".tile", cell);
tile.remove(itemImage);
};
но это не работает, я могу выбрать объект, но не могу удалить его с карты. Как я могу этого добиться?
Карта представляет собой случайный сгенерированный 2-мерный массив, примерно так:
map = [[1,1,1,1,0],
[1,0,0,0,0],
[1,0,1,1,1],
[1,0,0,0,1],
[1,1,1,0,1]]
любой совет будет очень признателен, спасибо.
ОБНОВИТЬ
Я думаю, что проблема в функции ниже.
что я хочу сделать, чтобы это исправить, или попробую:
выбрать элементы в позиции координат. строка, координатная ячейка. выберите изображение с правильным именем элемента и удалите его.
function removeItem(item){
let coord=item.actualPosition;
var itemImage = $(item.name);
var row = $($("#tableGame tr")[coord.row]);
var cell = $($("td", row)[coord.cell]);
var tile = $(".tile", cell);
tile.remove(itemImage);
}
Поэтому я помещу эту функцию в комментарий перед тем, как удалить ее, сейчас я пытаюсь ее переписать.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вероятно, это не лучший ответ, и в этом случае любые исправления будут действительно оценены (мне действительно нужно учиться), но я нахожу решение этого.
function removeItem(item){
let coord=item.actualPosition;
var row = $($("#tableGame tr")[coord.row]);
var cell = $($("td", row)[coord.cell]);
var tile = $(".tile", cell);
tile.first().find('img').first().remove();
};
я получил этот ответ благодаря этому сообщению: