0

假设我有以下一组代码?

<body>
    <div>
        <div>
            <div><span>Text that I want to capture</span></div>
        </div>
    </div>
</body>

如果用户点击span元素,我想捕获元素中的文本,然后捕获元素的层次结构。目标是稍后返回并将其与捕获的文本进行比较。

有图书馆可以帮助我完成这项工作吗?如果没有,您能否指出一些执行此操作的示例 JS 代码?我整天都在试图弄清楚,但似乎无法解决。

4

2 回答 2

2

您可以<html>使用$([clicked element]).parents(). 请参阅JQuery 文档

尝试通过分叉这个jsFiddle 来玩它

于 2013-09-08T06:55:59.227 回答
1

我认为你不需要图书馆。您可以将单击的元素存储在某个数组中,然后获取它们parentNode的 - 以具有层次结构:

element.parentNode.tagName

例子

document.write('<body><div><div><div><span>Text that I want to capture</span></div></div></div></body>');
document.querySelector('span').addEventListener('click', function (e) {
    var hierarchy = [];
    var parent = e.currentTarget.parentNode;
    while (parent) {
        parent.tagName && hierarchy.push(parent.tagName);
        parent = parent.parentNode
    }
    console.log(hierarchy.reverse()); // ["HTML", "BODY", "DIV", "DIV", "DIV"]
});
于 2013-09-08T06:49:59.397 回答