获取元素的父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
是被定义的,而不是它的某些variables。
有任何想法吗?
PS我宁愿避免jQuery如果可能的话。
您正在寻找Element
从Node
inheritance的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.parentElement
或pDoc.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