今天写一个递归程序求一棵树节点的所有子节点,方法是这样的
function getAllChildNodes() {
node = tree.getSelected();
var aryNodeId = new Array();
getChildNodesByCurrentNode(node,aryNodeId);
alert(aryNodeId.toString());
}
function getChildNodesByCurrentNode(node,aryNodeId) {
try {
for(i=0;i<node.childNodes.length;i++) {
var cnode = node.childNodes[i];
aryNodeId.push(cnode.text);
if(cnode.childNodes.length>0) {
getChildNodesByCurrentNode(cnode,aryNodeId);
}
}
}catch(e) {
alert(e);
}
}
其中我的递归函数getChildNodesByCurrentNode无论如何不能获得我想要的结果,只是取得了一个枝节点的所有数据,让我很是郁闷,后来把程序并给了同事让他帮我检查一下,发现了问题的所有,就是var的定义,即for循环中我少了var i=0.........
正确的方法是
function getChildNodesByCurrentNode(node,aryNodeId) {
try {
for(var i=0;i<node.childNodes.length;i++) {
var cnode = node.childNodes[i];
aryNodeId.push(cnode.text);
if(cnode.childNodes.length>0) {
getChildNodesByCurrentNode(cnode,aryNodeId);
}
}
}catch(e) {
alert(e);
}
}
大功告成,唉,真是活到老学到老,遇上了才发现原来一个小小的var原来作用大大呀,呵呵
分享到:
相关推荐
在JavaScript编程语言中,`var` 是...正确地使用`var`声明变量可以帮助维护代码的清晰性和可维护性,同时避免因全局变量引起的潜在问题。对于那些未声明的变量,应尽量避免使用,以免引入不必要的复杂性和潜在的错误。
接下来,我们将详细探讨var关键字在JavaScript中的重要性以及不正确使用它可能引发的问题。 首先,var关键字用于声明一个变量。它告诉JavaScript引擎,接下来的标识符将用作变量名,这将保留一块内存空间来存储信息...
在JavaScript编程语言中,中括号“[]”具有...了解了JavaScript中括号的这些用法后,我们能更好地理解和编写代码,避免因为不熟悉语法特性而引起的错误。在日常编程中,灵活运用这些知识可以提高代码的可读性和效率。
在 JavaScript 中,可以声明并初始化多个变量,例如: ```javascript var answer1, answer2, answer3, answer4; answer1 = 9; answer2 = 2.5; answer3 = "MilkeyMay"; answer4 = true; ``` 这里分别声明了一个整数、...
ES5中变量作用域的问题主要由var关键字引起,使用var声明的变量具有函数作用域或全局作用域,并且存在变量提升现象。ES6通过引入let和const改善了这一情况,防止了内层变量无意间覆盖外层变量的问题,并且让变量的...
这还包括理解`this`关键字的用法,它是JavaScript中经常引起混淆的一部分。 JavaScript的事件处理和DOM操作也是重要一环。通过学习如何监听和触发用户事件,以及如何使用DOM API来操作页面元素,你可以创建动态和...
《JavaScript的秘密花园》是一份持续更新的文档,致力于揭示JavaScript中那些鲜为人知且容易引起混淆的特性与用法。这份指南不仅帮助开发者规避常见的陷阱,还提供了针对性能优化、错误排查及避免不良编程习惯的宝贵...
在JavaScript中,双等号(==)用于比较两个值是否相等,但在这个过程中,它可能会引起隐性类型转换,即在比较之前自动将不同类型的值转换为同一类型。这种转换有时会导致意料之外的结果,因此理解其工作原理对编写...
### JavaScript中数组常见操作技巧 #### 数组的创建与初始化 在JavaScript中,创建数组通常使用数组字面量 `[]`。这与使用 `new Array()` 不同,因为后者在某些情况下用于创建指定长度的数组,而数组字面量则更加...
在实际编写JavaScript代码时,推荐通过var关键字声明变量,这样做可以避免变量作用域的问题,使得变量在局部作用域内可用,从而减少全局变量可能引起的命名冲突。 龙刚讲师通过自身的经验,使得这门课程不仅包含...
JavaScript是Web开发中不可或缺的一部分,尤其在前端领域,它的地位尤为重要。面试中,JavaScript的基本知识是考察候选人技术能力的重要部分...这些都是JavaScript面试中常见的问题,掌握这些知识有助于提升面试表现。
一、JavaScript语言特点 1.1、JavaScript是基于对象和事件驱动的(动态的) 它可以直接对用户或客户输入做出响应,无须经过Web服务程序。... 在定义变量时,统一使用”var 变量名”表示,例如:var str;甚至可
另外,为了避免特殊字符引起的问题,可以使用`encodeURI()`函数来编码Cookie的值。 ##### 读取Cookie 读取Cookie也是通过`document.cookie`属性完成的,但读取时需要解析这个字符串。示例代码如下: ```javascript ...
在编程的时候,需要注意特殊字符的问题,因为这些字符可能会在运行时引起问题。 转义序列字符: * \b 退格 * \f 走纸换页 * \n 换行 * \r 回车 * \t 横向跳格 (Ctrl-I) * \' 单引号 * \" 双引号 * \\ 反斜杠 在...
正确的注释可以帮助阅读者快速理解代码的功能,而不准确或不必要的注释则可能引起混淆。 #### 四、总结 良好的编程规范对于提高代码质量和团队协作效率至关重要。通过遵循上述JavaScript编程规范,可以显著提升代码...
- **作用域**: `var` 声明的变量具有函数作用域而非块级作用域,这意味着即使在不同的代码块中声明相同的变量也不会引起冲突。 - **变量提升**: `var` 声明的变量会被提升至当前作用域的顶部,这意味着可以在声明...
4. **嵌套函数**:应避免在块内声明函数,因为这种做法可能会引起一些浏览器中的性能问题,尤其是在IE中。 5. **异常处理**:在处理异常时,应尽量避免使用空的`catch`语句,这样做可能会隐藏程序的错误,使得调试...
在IT行业中,尤其是在财务系统和电子商务领域,将小写金额转换为大写是常见的需求,因为大写金额在正式的财务凭证中使用,可以避免因数字混淆而引起的错误。JavaScript作为一种广泛使用的前端脚本语言,提供了丰富的...
本书主要目的是帮助读者深入理解并掌握JavaScript的核心概念和技术,通过去除那些容易引起混淆或错误的部分,使读者能够更高效地编写高质量的JavaScript代码。 #### 二、核心内容与特点 1. **简化JavaScript**: ...