Z Z div B div A`div
と呼ばれるものがあるとしましょう。.
that is a sub-sub-sub... child of a
called
which is a child of a
called
B
からまでのすべてのブロックが(が表示されます)Z
に設定されます。display=none
A
ブロックにリンクしているアンカーをクリックすると、Z
それが表示されます。
そのためには、ブロック Z の表示を設定する必要があります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)
}
}