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

Ann*_*igi 19 javascript dom

我正在使用javascript DOM遍历HTML文档.我想制作一个所有节点/元素及其值的列表(实际上是一个数组).我找到了一个遍历DOM的脚本,但是如何将每个节点值存储在一个数组中.我似乎无法找到节点的唯一标识符.任何人有任何指针?我在想xpath什么.

xpath节点视为唯一标识符是一个好主意.如果是这样,我如何xpath在遍历DOM时获取元素?

jrh*_*ath 23

作为程序员在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] );
}
Run Code Online (Sandbox Code Playgroud)

  • 这样的引用可以用作唯一ID吗?例如,我可以将它存储在某个地方并在另一个javascript脚本中重用它来访问同一个节点吗?如果不是(我怀疑),那么你将如何"记住"脚本之间的节点? (2认同)