从javascript函数中删除元素
我一直在编写一个游戏,我想在这里提到的部分是——有一种形式,玩家选择他们玩的棋盘的大小,我成功地完成了,它生成了半个金字塔 我的主要问题是,为了玩游戏,我需要将鼠标移到元素上,它会改变颜色,然后单击它将其删除。无论我做什么,我似乎无法在我选择的元素上做到这一点,我可以让它发生在最近的元素上,但决不能发生在我单击的元素上 这就是我到目前为止得到的从javascript函数中删除元素,javascript,mouseevent,Javascript,Mouseevent,我一直在编写一个游戏,我想在这里提到的部分是——有一种形式,玩家选择他们玩的棋盘的大小,我成功地完成了,它生成了半个金字塔 我的主要问题是,为了玩游戏,我需要将鼠标移到元素上,它会改变颜色,然后单击它将其删除。无论我做什么,我似乎无法在我选择的元素上做到这一点,我可以让它发生在最近的元素上,但决不能发生在我单击的元素上 这就是我到目前为止得到的 function selectTab() { document.getElementById("tabuleiro").innerHTML =
function selectTab() {
document.getElementById("tabuleiro").innerHTML = "";
var tamanho = document.getElementById("valorint").value;
if(tamanho<=10) {
console.log(tamanho);
var tab = document.getElementById("tabuleiro");
for(var i = 0; i<tamanho; i++) {
var linha = document.createElement('div');
for(var j = 0; j<i+1; j++) {
var coluna = document.createElement('div');
coluna.setAttribute("id", "coluna");
linha.appendChild(coluna);
coluna.addEventListener("click", function() {
playMove(this.id) }, false);
}
tab.appendChild(linha);
}
}
else {
console.log(tamanho);
alert("Isso é demasiado!");
}
}
function playMove(id) {
this.closest("div").remove();
}
函数selectTab(){
document.getElementById(“tabuleiro”).innerHTML=“”;
var tamanho=document.getElementById(“valorint”).value;
如果(tamanho在for循环的a侧添加侦听器时,这通常是一个关闭问题。请尝试:
function selectTab() {
document.getElementById("tabuleiro").innerHTML = "";
var tamanho = document.getElementById("valorint").value;
if(tamanho<=10) {
console.log(tamanho);
var tab = document.getElementById("tabuleiro");
for(var i = 0; i<tamanho; i++) {
var linha = document.createElement('div');
for(var j = 0; j<i+1; j++) {
var coluna = document.createElement('div');
coluna.setAttribute("id", "coluna");
(function(element){
element.addEventListener("click", function() {
playMove(this.id) }, false);
)}(coluna);
coluna.appendChild(coluna);
}
tab.appendChild(linha);
}
}
else {
console.log(tamanho);
alert("Isso é demasiado!");
}
}
function playMove(id) {
this.closest("div").remove();
}
单击我!
最近的
将删除最近的父项,您是否尝试过此方法。删除()
我尝试过,它显示此方法。删除()不是一个函数事件处理程序不会触及i
或j
。它只关心这个
。没有变量被关闭。需要关闭这是一个常见问题。虽然您链接到的问题是一个常见问题,但不是这里的问题(原因在我之前的评论中描述)。但它不起作用,也有同样的问题。它说。最近的不是一个函数。我用工作代码更新了我的答案。@Quentin是对的。你不需要闭包。对不起,html。我不懂葡萄牙语,所以我不得不对你的目的有很多猜测。