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