Получение родительского div элемента
это должно быть очень просто, но у меня возникли проблемы с этим. Как получить Родительский 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, если это возможно.
6 ответов:
вы ищете
parentNode
, которыйElement
наследует отNode
:parentDiv = pDoc.parentNode;
Удобные Ссылки:
- DOM2 Core спецификация - хорошо поддерживается всеми основными браузерами
- DOM2 HTML спецификация-привязки между DOM и HTML
- DOM3 ядра спецификация - некоторые обновления, не все поддерживаются все основные браузеры
- спецификация HTML5 - который теперь имеет привязки DOM / HTML в нем
Если вы ищете определенный тип элемента, который находится дальше, чем непосредственный родитель, вы можете использовать функцию, которая идет вверх по 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; }
знание родителя элемента полезно, когда вы пытаетесь расположить их в "реальном потоке" элементов.
ниже заданного кода будет выведен идентификатор родительского элемента, идентификатор которого предоставляется. Может использоваться для диагностики несоосности.
<!-- 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 -->
var parentDiv = pDoc.parentElement
edit: это иногда
parentNode
в некоторых случаях.https://developer.mozilla.org/en-US/docs/Web/API/Node/parentElement