【发布时间】:2014-05-24 19:04:07
【问题描述】:
好的,当我点击页面上的任何元素并且我想建立一个元素所在的 DOM 树时,我正在尝试执行以下操作。
html 示例
<html>
<head>
</head>
<body>
<ul>
<li><span>Elem 1</span></li>
<li><span>Elem 2</span></li>
<li><span>Elem 3</span></li>
</ul>
</body>
</html>
这是JS(来自点击事件并通过点击的元素)
function getElementIdentifier(elem, domSelector, firstId) {
if(elem.tagName === 'HTML') {
return 'HTML ' + domSelector;
} else {
return getElementIdentifier(elem.parentNode, ' > ' +elem.tagName + ' ' + domSelector, firstId);
}
}
这在一定程度上有效,但当我点击列表中的第三个项目时,它只检索以下内容:
HTML > BODY > UL > LI > SPAN
但我想检索第三个,因为这是我点击的那个。我有一个要展示的代码笔。
http://codepen.io/tom-maton/pen/FljpL/
我不想使用 jQuery - 只是想使用原始 js。
【问题讨论】:
-
我没有看到这里的问题,你的“面包屑”对第三个元素也有效。
-
正如 veritas 所说的那样,你的意思是你想让它以前的兄弟姐妹和父母一起去吗?
-
它生成了错误的选择器,因为如果我将选择器传递给jquery,它只会返回第一个li。而我想检索 HTML > BODY > UL > LI + LI > SPAN 为第二个和 HTML > BODY > UL > LI + LI + LI > SPAN 为点击的第三个项目
-
@TomMaton 你只想要以前的兄弟姐妹对吗?
标签: javascript dom