获取元素的父div

这应该很简单,但我有麻烦了。 我如何得到一个子元素的父母的div?

HTML

<div id="test> <p id="myParagraph">Testing</p> </div> 

JavaScript的

 var pDoc = document.getElementById("myParagraph"); var parentDiv = ?????????? 

我会以为document.parentparent.container会工作,但我不断收到not defined错误。 请注意, pDoc是被定义的,而不是它的某些variables。

有任何想法吗?

PS我宁愿避免jQuery如果可能的话。

您正在寻找ElementNodeinheritance的parentNode

 parentDiv = pDoc.parentNode; 

方便的参考文献:

  • DOM2核心规格 – 得到所有主stream浏览器的支持
  • DOM2 HTML规范 – DOM和HTML之间的绑定
  • DOM3核心规范 – 一些更新,并非所有主stream浏览器都支持
  • HTML5规范 – 现在已经有了DOM / HTML绑定

如果您正在寻找比直接父级更远的特定types的元素,则可以使用一个函数,直到DOMfind一个,否则:

 // 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.parentElementpDoc.parentNode将得到你的父元素。

这可能会帮助你。

 ParentID = pDoc.offsetParent; alert(ParentID.id); 

当你试图将它们排列在元素的“真实stream”上时,知道元素的父亲是有用的。

下面给出的代码将输出提供id的元素的父代的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

编辑:有时这有时是parentNode

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