访问树中的所有元素(DOM)

创建一个函数,给定页面上的DOM元素,将访问元素本身及其所有后代(而不仅仅是它的直接子代)。对于访问的每个元素,函数应将该元素传递给提供的回调函数。

函数的参数应该是:

  • 一个DOM元素
  • 一个回调函数(以DOM元素为参数)

访问树中的所有元素(DOM)是一种经典的深度优先搜索算法应用程序。以下是一个示例解决方案:

function Traverse(p_element,p_callback) {
   p_callback(p_element);
   var list = p_element.children;
   for (var i = 0; i < list.length; i++) {
       Traverse(list[i],p_callback);  // recursive call
   }
}
时间: 2024-10-17 23:48:35

访问树中的所有元素(DOM)的相关文章

在使用时的区别是当我们想访问一个对象(object)的元素dollars 和yens

以上两种定义的唯一区别在于左边的定义中我们给了union一个名字price,而在右边的定义中我们没给.在使用时的区别是当我们想访问一个对象(object)的元素dollars 和yens 时,在前一种定义的情况下,需要使用: book.price.dollars book.price.yens 而在后面一种定义下,我们直接使用: book.dollars book.yens 再一次提醒,因为这是一个联合(union),域dollars 和yens 占据的是同一块内存空间,所以它们不能被用来存储两

通过Ztree生成页面html元素Dom树,以及拖拽改变元素的位置

zTree 是一款依靠 jQuery 实现的多功能 "树插件",http://www.treejs.cn/v3/main.php#_zTreeInfo,功能强大,不多赘述. 下面我将介绍如何实现使用该插件生成HTML元素Dom树,并对其进行多样操作. 先贴上一个简单的HTML页面(直接拿的ztree的用的,画面简单实用,里面的文字内容不用在意) 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-e

非循环双链表 | 使访问频率高的元素靠前排列的查找函数

王道P38T20 主代码: DLinkList Locate(DLinkList& L,int x){ //查找元素值为x的元素 int i; DNode *p=L->next, *q; while(p!=NULL){ if(p->data == x){ //将指针p移动到最前面 p->freq++; q=p->pred; while(q!=L && q->freq < p->freq){ q=q->pred; } p->pre

C++访问二维数组元素

if(*image_in+j*+xsize+i)>=thresh)//xsize图像宽度 image_out是首地址,加上j*行宽就是目标行的首地址,再加上i,就是在此行中的第i个像素,所以整个就是通过循环把整个image_out遍历一边.

数据结构开发(21):树中属性操作与层次遍历

0.目录 1.树中属性操作的实现 2.树形结构的层次遍历 3.小结 1.树中属性操作的实现 树中结点的数目: 定义功能:count(node) 在 node 为根结点的树中统计结点数目 树结点数目的计算示例: count(A) = count(B) + count(C) + count(D) + 1 在GTree.h中实现统计结点数目: protected: int count(GTreeNode<T>* node) const { int ret = 0; if( node != NULL

数据结构 # 二叉树/堆/栈

数据结构是计算机存储.组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率.数据结构往往同高效的检索算法和索引技术有关. 逻辑结构包括:1.集合数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系: 2.线性结构数据结构中的元素存在一对一的相互关系: 3.树形结构数据结构中的元素存在一对多的相互关系: 4.图形结构数据结构中的元素存在多对多的相互关系. ================ 效果:1.

数据结构(12)_树的概念及通用树的实现

1.树的定义与操作 1.1.树的相关定义 1.树的定义 树是一种非线性的数据结构,右n(n>=0)个结点组成的有限集合,如果n=0,称为空树,如果n>0,则: 有一个特定的结点被称之为跟结点(root),根结点只有直接后继,没有前驱, 除根结点外的其他结点划分为m(m>=0)个互不相交的有限集合T0,T1...Tm-1,每一个集合又是一颗子树,并称之为跟的子树.树的示例如下: 2.树中度的概念 树的结点包含一个数据及如果指向子树的分支,结点拥有的子树数目称为结点的度(度为0的结点称为叶结

1 数据结构(13)_二叉树的概念及常用操作实现

1. 树到二叉树的转换 思考:通用树结构的实现太过复杂(树中每个结点都可以有任意多的孩子,具有多种形态),工程中很少会用到如此复杂的树是否可以简化呢?思路:减少树结点中孩子的数量.但这样树是否还能通用呢? 1.1.树的两种表示法 双亲孩子表示法:孩子兄弟表示法:孩子兄弟表示法的特点:1.能够表示任意的树形结构2.每个结点包含一个数据成员和两个指针成员3.孩子结点指针和兄弟结点指针构成"树杈" 2.2.二叉树 二叉树是由n(n>=0)个节点组成的有限集合,该集合或者为空,或者是由一

树——通用树的层次遍历

1,为何及如何按层次遍历通用树中的每一个数据元素? 1,通用树结构是一种容器类型的树结构,其用来装数据元素,所以应该提供一种方法来遍历树中的每一个数据结构: 2,往下分析: 2,当前的事实: 1,树是非线性的数据结构,树的结点没有固定的编号方式: 1,也就不能像链表一样统一编号来访问: 3,新的需求: 1,为通用树结构提供新的方法,快速遍历每一个结点: 4,设计思路(游标): 1,在树中定义一个游标(GTreeNode<T>*): 2,遍历开始前将游标指向根结点(root()): 3,获取游标