- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个名为 Z 的
Zdiv
。 是一个 sub-sub-sub...
div 的子级called
B它是一个
divcalled
A` 的 child 。
从B
到Z
的所有 block 都设置为display=none
(A
可见)。
如果我单击链接到 block Z
的 anchor ,我希望显示它。
为此,我需要设置 block Zblock
的显示,还有它的父级显示*要阻塞,它的父级一直到 block B....
我不想“硬”编码所有可能的级别,因为我可以有 2、4 或 10 个级别。所以我想找到一种自动完成的方法。
我稍微简化了上面的示例,因为我必须每 2 个“世代”设置一次 display=block
(参见我的代码中的 parentNode.parentNode
)
到目前为止,这是我的代码(在兔子洞里有 2 级!)而不是自动化:
function indexLink(link_to_anchor) {
var x = document.getElementById(link_to_anchor);
if (x.parentNode.parentNode.getAttribute("class") == "divcodebox") {
if (x.parentNode.parentNode.parentNode.parentNode.getAttribute("class") == "divcodebox") {
x.parentNode.parentNode.parentNode.parentNode.style.display = "block";
}
x.parentNode.parentNode.style.display = "block";
}
x.style.display = "block";
}
递归地使用 indexLink() :
function indexLink(link_to_anchor) {
var x = document.getElementById(link_to_anchor);
x.style.display = "block";
if (x.parentNode.parentNode.getAttribute("class") == "divcodebox") {
x.parentNode.parentNode.style.display = "block";
indexLink(x)
}
}
最佳答案
一个简单的 for
循环怎么样?
var x = document.getElementById(link_to_anchor);
for (parent = x.parentNode; parent; parent = parent.parentNode) {
// do whatever
}
你当然可以保留一个计数器来检查你已经遍历了多少步等。 document
级别的 .parentNode
引用将为 null
,这样就结束了迭代。 (您也可以尽早跳出循环。)
关于javascript - JS : How to automate going up "parentNode" as many times as needed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56042516/
var topClick = function() { child = this.parentNode.parentNode.parentNode.parentNode; child.pare
在我的代码中,函数 displayUserTable 将一些名为 tUserBlock 的 div 附加到名为 centralWindow 的主 div。当您单击 tUserBlock 时,会从名为
这是一种病态的情况,但假设我有以下 HTML: [...] 我有一个表格的引用,例如 var form = document.getElementById(
我正在使用以下代码片段来更新表中的某些文本框值。 ProjectName Block .WorkProgressMilestone Completion
我有一个创建 HTML 表格的函数: makeHTMLTable: function(array){ var table = document.createElement('table');
我已经开始使用 d3,此时我正在编辑给定的脚本以满足新的要求。我尝试访问变量,但无法访问它。有人可以帮我吗? 问题出在第 5 行,我无法获取“this.parentNode”,但我需要它。 有人能指出
我正在通过为自己设置一些小练习来练习基本的 JS 技能。在这个中,我有一个列表 s 位于 div 内。练习的目的是包装每个 在一个 div 中。我正在使用replaceChild在这种情况下。 奇怪
我的 javascript 程序基本上创建一系列图像并随机选择一个图像并将其 src 设置为特定路径。然而,由于某种原因,代码有时似乎会卡住。在我的程序中,我调用其中一个图像的 element.par
我有以下带有 A 框架的 html 结构。基本上,我使用以下基本 html 构建原子的 3D 表示:\ 为了
如果我们使用 closable: true 关闭 tabPanel,则默认操作将销毁 tabPanel。因此,由于 tabPanel 被破坏,我们将无法再次显示 tabPanel。但是,我不希望 ta
我正在尝试使用 JavaScript 复制 jQuery 的 after(): var orangeBlock = 'Try out the New Version of CLO' var greyB
我有一个问题。如何多次使用 parentNode 属性? 我知道我可以做出这样的东西: document.getElementById("mytag").parentNode.parentNode.r
我正在尝试为我构建一个类似 jquery 的实用程序库,这正是我主要使用 jQuery 的东西。 我有以下代码: function jLib(selector) { this.elements =
我有一组嵌套的 div: a b c d 我
现在我有这段代码: function delete_box(n) { document.getElementById("box"+n).style.display = "none";
我有一个获取元素的 id 并找出它的 parentNode 的函数,现在我想在那个 中找到所有 id 以相同的 string 开头的元素>父节点. 有什么功能或方法可以找出来吗?我正在尝试这个: va
是否可以链接 parentNode(或类似的)调用? 例如,假设我有这个 html: 现在假设我在“按钮”上有一个事件监听器。现在我想将
考虑这个简单的页面: var upper; var lower; function crop() { //upper = document.getElemen
我有一个项目列表,上面有不同的事件处理程序。 ... Item ... Add to list A Add to list B
如果它有几个没有 id 的子节点,那么将一些内容添加到 ParentNode 的最佳方法是什么。 条件是: I need to add contents inside this
我是一名优秀的程序员,十分优秀!