これは本当に簡単なはずですが、問題があります。子要素の親divを取得する方法
私のHTML:
<div id="test">
<p id="myParagraph">Testing</p>
</div>
私のJavaScript:
var pDoc = document.getElementById("myParagraph");
var parentDiv = ??????????
私はdocument.parent
またはparent.container
が機能すると思っていたでしょうが、not defined
エラーが出続けます。 pDoc
が定義されていることに注意してください。特定の変数ではありません。
何か案は?
P.S可能であれば、私はjQueryを避けたいと思います。
parentNode
を探しています。 Element
は Node
から継承しています。
parentDiv = pDoc.parentNode;
便利な参考文献:
直接の親よりも遠い特定のタイプの要素を探している場合は、DOMが見つかるまでDOMを上がる関数を使用できます。
// Find first ancestor of el with tagName
// or undefined if not found
function upTo(el, tagName) {
tagName = tagName.toLowerCase();
while (el && el.parentNode) {
el = el.parentNode;
if (el.tagName && el.tagName.toLowerCase() == tagName) {
return el;
}
}
// Many DOM methods return null if they don't
// find the element they are searching for
// It would be OK to omit the following and just
// return undefined
return null;
}
プロパティpDoc.parentElement
またはpDoc.parentNode
はあなたに親要素を与えます。
これはあなたを助けるかもしれません。
ParentID = pDoc.offsetParent;
alert(ParentID.id);
var parentDiv = pDoc.parentElement
編集:これは時々parentNode
です。
https://developer.mozilla.org/en-US/docs/Web/API/Node/parentElement
要素の「本当の流れ」からそれらを除外しようとしているとき、要素の親を知ることは役に立ちます。
以下のコードはidが与えられた要素のparentのidを出力します。位置ずれの診断に使用できます。
<!-- Patch of code to find parent -->
<p id="demo">Click the button </p>
<button onclick="parentFinder()">Find Parent</button>
<script>
function parentFinder()
{
var x=document.getElementById("demo");
var y=document.getElementById("*id of Element you want to know parent of*");
x.innerHTML=y.parentNode.id;
}
</script>
<!-- Patch ends -->