Получение родительского 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 161

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;
}

свойства pDoc.parentElement или pDoc.parentNode будет вам родительский элемент.

Это может помочь вам.

ParentID = pDoc.offsetParent;
alert(ParentID.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 -->

var parentDiv = pDoc.parentElement

edit: это иногда parentNode в некоторых случаях.

https://developer.mozilla.org/en-US/docs/Web/API/Node/parentElement