当前位置: 首页 > 知识库问答 >
问题:

我必须点击两次,为什么?说明:JavaScript onhtml事件处理程序

魏雅惠
2023-03-14

这是一个非常基本的例子,我有两个部分-左边和右边-左边有五个图像,右边是空的,我有复制按钮复制整个左节点(div)并将其追加到右div,删除按钮应该删除右div中的最后一个图像,它确实如此,事情是i必须点击两次删除按钮删除一个图像,所以我必须点击10次删除整个设置。我应该怎么做,使删除按钮删除图像只需单击一次?

这是我的全部代码,在MicrosoftEdge和GoogleChrome上进行了测试,得到了相同的结果。

var theLeftSide = document.getElementById("leftSide");
var theRightSide = document.getElementById("rightSide");


function Copy() {
  copy = theLeftSide.cloneNode(true);
  theRightSide.appendChild(copy);
}

function Delete() {
  copy.removeChild(copy.lastChild);
}
div {
  position: absolute;
  width: 670px;
  height: 520px;
  background: red
}
#rightSide {
  position: absolute;
  left: 670px;
  border-left: 1px solid black;
  background: black
}
html lang-html prettyprint-override"><input type="button" value="Copy" onclick="Copy()">
<input type="button" value="delete" id="btn" onclick="Delete()">

<div id="leftSide" style="width:400px">
  <img src="smile.png" />
  <img src="smile.png" />
  <img src="smile.png" />
  <img src="smile.png" />
  <img src="smile.png" />
</div>

<div id="rightSide">

</div>

共有2个答案

燕志学
2023-03-14

您正在删除文本节点和元素。您真正想要的是复制。removeChild(copy.lastElementChild)

柴琨
2023-03-14

大多数浏览器在默认情况下在页面的每个元素之间插入一个空文本节点,您的代码为每个img删除一个空节点,这就是为什么它似乎有一半的时间可以工作的原因。

试试这个:

function Delete(){
  var imgs = document.querySelectorAll('.rightSide img');
  copy.removeChild(imgs[imgs.length-1]);
}
 类似资料:
  • 我正在制作一个时间跟踪仪表板网站,它有3个链接(每日,每周和每月),我想根据点击的链接更改内容。我将所有3个链接的哈希值设置为,和,在我的jQuery脚本中,我通过添加使用

  • 我正在设计一个网站,在导航我有2个链接有下拉菜单(“关于”和“服务”)。当你将鼠标悬停在链接上时,下拉菜单就会出现,然后当你点击链接时,下拉菜单就会消失,然后如果你再点击它,下拉菜单就会再次出现。所以基本上,为了进入那个页面,你必须三次点击链接。有没有人知道我可以做什么来改变这个,这样你就可以在点击一次后进入页面? 这是导航在我的HTML代码中的样子: 以下是相关的CSS: 编辑:我发现下拉菜单是

  • 所以我的问题是,当我点击一个radiobutton来添加类“Completed”时,它执行了所要执行的操作,但是当我想要移除它时,我需要点击两次,我不知道为什么。如有任何帮助,我们将不胜感激。谢谢 HTML CSS JavaScript

  • 我想把两个事件处理程序两个连续点击像国际象棋,我已经这样做了,它的工作...但我希望在单独的事件处理程序中完成。

  • 今天,我读到了《C编程语言》(第二版Brian W.Kernighan&Dennis M.Ritchie)第167页,发现作者说我必须强制转换。以下是书中的部分: 7.8.5存储管理 函数malloc和calloc动态地获取内存块。

  • 问题内容: 我已经在这个程序上工作了一段时间了,我的大脑被炸了。我可以向其他人寻求帮助。 我正在尝试制作一个程序来逐行读取文本文件,并且将每一行都制成一个,以便可以访问每个令牌。我究竟做错了什么? 我要戳一下眼球。我遇到了三个错误: 我究竟做错了什么? 问题答案: 在大多数情况下,当您使用Java使用I / O时,您必须处理IOException,这可能在您读/写甚至关闭流时随时发生。 您必须将敏