javascript - 无法将子元素附加到单击的元素

标签 javascript html dom

我尝试在单击元素时将 div 附加到该元素,但是当我使用 .appendChild(div) 时,我尝试附加的元素未定义。我很困惑,因为它显然在 DOM 中,因为我能够检测到对其的点击,但我只是无法附加到它。

var pcells = document.getElementsByClassName('priority-cell');

for (var i=0; i < pcells.length; i++) {
  pcells[i].onclick = function () {
    var div = document.createElement('div');
       div.style.backgroundColor = "red";
       div.style.height = "10px";
       div.style.width = "10px";

       pcells[i].appendChild(div);
  };
}

最佳答案

您遇到范围界定问题。您需要将事件详细信息传递到处理程序中,并使用 target 属性来识别单击了哪个单元格。

var pcells = document.getElementsByClassName('priority-cell');

for (var i=0; i < pcells.length; i++) {
  pcells[i].onclick = function (e) {
    var div = document.createElement('div');
       div.style.backgroundColor = "red";
       div.style.height = "10px";
       div.style.width = "10px";

       e.target.appendChild(div);
  };
}

(JSFiddle:https://jsfiddle.net/z3nhprzp/)

关于javascript - 无法将子元素附加到单击的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44428612/

相关文章:

c++ - QDom 删除节点

javascript - document.hidden 与 document.hasFocus() 之间的区别

javascript - 重定向在 chrome.identity 中不起作用

javascript - Basic JS - 为什么这个 obj 没有更改为 undefined?

html - 标签状形状的轮廓

javascript - 如何通过 Drupal 8 模块使用 jQuery 代码?

javascript - 输入字段未更新

dom - 解析从 JTidy 返回的 DOM 以查找特定的 HTML 元素

javascript - 将事件添加到 DOM

javascript - 如何将所有 RegEx 捕获组作为单个字符串获取?