javascript - DOM 元素/节点的唯一标识符是什么

标签 javascript dom

我正在使用 javascript DOM 遍历 HTML 文档。我想制作一个所有节点/元素及其值的列表(实际上是一个数组)。我找到了一个用于遍历 DOM 的脚本,但是如何将每个节点值存储在一个数组中。我似乎找不到节点的唯一标识符。有人有任何指示吗?我在想xpath或者其他的东西。

考虑xpath 是个好主意吗?节点作为唯一标识符。如果是这样,我如何获得 xpath遍历 DOM 时的元素?

最佳答案

作为在 C 和 C++ 世界中出生和长大的程序员,我对这类问题的第一个答案是“将他们的地址存储在数组中!”。但是经过几年对网络事物的处理方式,我可以给出正确的答案:

在javascript中,您可以直接将对对象的引用存储在数组中。
不,xpath 不是一个好主意;使用引用更简单更好。
因此,对您的问题的直接回答是:除了自身之外,DOM 元素/节点没有唯一标识符。

在 javascript 中,所有对象都是通过引用传递的。所以这里有一个如何做到这一点的示例代码:

var theArray = [];
var theNodeToTraverse = document.getElementById('domelementtosearch');

traverseAndStore(theNodeToTraverse);

function traverseAndStore( node )
{
    if( node==null) return;
    theArray[ theArray.length ] = node;
    for( i=0; i<node.childNodes.length; i++ )
        traverseAndStore( node.childNodes[i] );
}

关于javascript - DOM 元素/节点的唯一标识符是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/881768/

相关文章:

javascript - 使用 data-id 获取元素列表

javascript - 在 Angular 中调用 $post 时如何使用 MVC 重定向

javascript - 使用 jQuery 获取更近的对象

javascript - ASP.NET:使用 Ajax (JSON) 从 View 到 Controller POST List<Object>/Model

c# - 在 C# 中为变量分配动态函数调用的结果

javascript - getElementsByClassName 与 getElementById 不同(支持浏览器)

javascript - Jquery 删除 innertext 但保留 html

JavaScript - 所有 DOM 操作函数都返回 null/空?

javascript - three.js SpotLight orientation(方向)问题

python - 获取 DOM 树中元素的 XPath?