javascript - element.appendChild(node) 是否将父节点的属性应用于子节点?

标签 javascript jquery html

我是 HTML 和 JS 新手。 需要创建动态展开折叠列表。 varparentId = document.getElementById("ABCD") ParentId.setAttribute("数据切换","折叠") ParentId.setAttribute("数据目标","#collapse1") var tag = document.createElement("ul"); tag.setAttribute("id","collapse1") tag.appendChild(document.createTextNode("PQR")) ParentId.appendChild(标签)

尝试将其列为- A B C D 项目质量报告

因此,在这种情况下,当我单击 ABCD 时,PQR 会展开/折叠。 但问题是点击 PQR 时,它又崩溃了。 那么父节点的属性也适用于子节点吗?

最佳答案

这并不是说它获取了其父级的属性,这与事件的处理方式有关,特别是 event bubbling 。当您单击子元素时,如果您单击的所有父元素都会触发单击事件

要在单击附加元素时取消事件冒泡,您需要在新元素的单击处理程序中使用 event.stopPropagation()

附加它们后,执行以下操作

// tag.appendchild code goes here, then do the following

document.querySelector("#collapse1").onclick=function(event){
    event.stopPropagation();
}

另外,我应该提到,有了jQuery,这一切都会变得容易10倍。

关于javascript - element.appendChild(node) 是否将父节点的属性应用于子节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32918021/

相关文章:

javascript - 是否可以使用 Ant.design 将表格插入表格的每一行?

php - Sql INNER JOIN 无法正常工作,如何使用 Jquery/Ajax 在 html 表单上显示上传的文件

javascript - 右侧的滑动面板,就像顶部的现有面板一样

jquery - 我的标题总是消失

javascript - 我如何从 asp.net c# 后面的代码中的 div 中获取文本?

javascript - (variable).toFixed(2) 和 +(variable).toFixed(2) 之间有什么区别?

javascript - 更改 Node 中的主要环境

Javascript 在函数后不断变得未定义 - 提示

javascript - Jquery UI对话框关闭函数 "Uncaught SyntaxError: Unexpected identifier"

html - 我如何控制三次单击突出显示? (HTML)