`

记JavaScript一低级错误

阅读更多
detail是单元格中5个checkbox的name,表格id="detailTable",表格所在的表单name属性为detailForm。昨天写了这么一段代码来删除选中的checkbox所在的行:

function deleteRows(){
	var rows = document.detailForm.detail;
	var detailTable = document.getElementById("detailTable");
	for(var i=0; i<rows.length; i++){
		if(rows[i].checked){
			detailTable.deleteRow(rows[i].parentNode.parentNode.rowIndex);
			i--;
		}
	}
}


接着我选中了全部的checkbox,点击删除按钮调用deleteRows方法,结果发现进入死循环,好在FireFox3在死循环一小段时间后会弹出个对话框询问是否结束脚本执行。于是我打开FireBug进行调试,发现在删除最后一行的时候,rows.length的值始终是1,i值是0,百思不得其解。于是换到IE下,结果没发现问题。但是在IE下只生成一行checkbox的时候,点删除按钮怎么也删不了。抓狂状态下叫来18同学,看了一会代码,他找出原因了:var rows = document.detailForm.detail;这一行代码出了问题,在只有一个detail的时候,浏览器把它当成一个非数组对象,rows.length的值是undefined,所以detailTable.deleteRow(index)怎么也执行不到。只要把document.detailForm.detail;改成document.getElementsByName("detail");就一切正常了。

ps:不记得之前是因为什么原因,我老是记得FireFox不支持document.getElementsByName(),所以获取dom对象都是用id,不敢用name。18同学给我改代码的时候,我还非常肯定的说:绝对运行不了 ……
分享到:
评论
1 楼 zhangyou1010 2009-09-12  
 

相关推荐

    计算机教程编程基础.ppt.ppt

    汇编语言是用助记符代替操作码、用地址符代替操作数的一种面向机器的低级语言。高级语言的表达方法接近于人的自然语言和数学表达式,不依赖于机器的特定属性。 三、词法、语法和语义规则 词法是组成合法语句的基本...

    键盘钩子hook

    以下是一个简单的C++示例,演示如何创建一个低级键盘钩子: ```cpp #include LRESULT CALLBACK KeyboardHookProc(int nCode, WPARAM wParam, LPARAM lParam) { if (nCode ) return CallNextHookEx(NULL, nCode,...

    v8 lib使用配套测试工程

    4. **WebAssembly支持**: V8不仅处理JavaScript,还支持WebAssembly,这是一种低级的二进制格式,用于在Web上部署高性能的原生代码。 测试工程可能包含以下部分: - **单元测试**:针对V8库的各个组件进行独立测试...

    DWR技术的应用

    DWR(Direct Web Remoting)是一个开源的Java库,它使得在浏览器中的JavaScript可以调用服务器端的Java方法。DWR可以被看作是一个AJAX引擎,它简化了AJAX编程的复杂性,能够让开发者专注于业务逻辑的实现而不是底层...

    low-level-developer-tools:Eattle 低级开发人员工具

    Eattle 是一款专为低级开发人员设计的工具,它在JavaScript环境中提供了一系列实用的功能,旨在简化和优化底层编程任务,从而提高开发效率。这款工具集成了多种核心功能,使得在处理内存管理、性能分析、调试以及...

    前端项目-sass.js.zip

    Emscripten是一个LLVM到JavaScript的编译器,它能够将低级语言转换为可以在Web浏览器上运行的高效JavaScript代码。 在`sass.js`的API中,我们可以找到如下的关键功能: 1. **编译SASS到CSS**:通过调用`sass....

    简单新闻发布系统

    ADO.NET是低级的数据访问接口,而Entity Framework则是ORM(对象关系映射)框架,可以让开发者以面向对象的方式来操作数据库。 3. **Model-View-Controller (MVC)架构**:如果项目使用了ASP.NET MVC,那么它遵循了...

    2021-2022计算机二级等级考试试题及答案No.16228.docx

    - **详解**: 汇编语言是一种低级编程语言,它与特定的计算机硬件架构紧密相关。而机器语言是计算机可以直接理解的语言,由二进制码组成。汇编语言需要经过汇编器转换成机器语言才能被执行。 ### 8. 基类与派生类的...

    jx_http_server

    2. **C++编程**:C++是一种中级语言,它结合了低级语言的效率和高级语言的易用性。在C++中实现HTTP服务器需要对网络编程有深入理解,包括套接字编程、异步I/O等。 3. **服务器架构**:一个基本的HTTP服务器需要监听...

    Node.js-wreck-HTTP客户端实用工具

    `Node.js`是一种基于Chrome V8引擎的JavaScript运行环境,它让JavaScript可以在服务器端执行,极大地拓宽了JavaScript的应用领域。而`wreck`是`Node.js`生态系统中的一个非常有用的库,它是一个针对HTTP客户端操作的...

    编译原理语义分析

    编译原理是计算机科学中的一个重要领域,主要研究如何将高级编程语言转换为机器可以理解的低级语言,即机器码。语义分析是编译器设计中的关键阶段,它在词法分析和语法分析之后进行,确保源代码的含义正确无误。下面...

    学生信息管理系统学生信息管理系统学生信息管理系统

    9. **错误处理和日志记录**:良好的错误处理机制和日志记录对于调试和问题排查至关重要。 10. **部署与运维**:系统部署可能涉及Docker容器化、持续集成/持续部署(CI/CD)流程,如Jenkins或GitLab CI。 每个ASM...

    2021-2022计算机二级等级考试试题及答案No.13163.docx

    - **知识点解析**:管道流(PipedInputStream 和 PipedOutputStream)是Java中实现线程间通信的一种方式,通常用于一个线程向另一个线程发送数据。 #### 题目21:Python字符串处理 - **知识点解析**:本题考察了...

    node.js笔记.zip

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者能够在服务器端使用JavaScript编写代码,打破了JavaScript只能在浏览器端使用的限制。Node.js采用事件驱动、非阻塞I/O模型,使其轻量又高效,特别...

    safe-result:成功或失败的价值

    安全结果 错误处理是软件开发中... 真的是各地诉诸没有办法try / catch在Javascript,所以你将不得不使用try / catch在你自己的“低级”的代码。 原料药 您可以通过默认导入来导入模块 import Result from 'safe-resul

    前端开源库-node-redis-scripty

    1. **Node.js**: 是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript可以在服务器端运行,提供了一种高效的方式来构建网络应用。 2. **Redis**: 是一个开源的内存数据结构存储系统,常作为数据库、缓存...

    2021-2022计算机二级等级考试试题及答案No.3356.docx

    实际上,机器语言是一种低级语言,由二进制代码组成。 以上是对2021-2022计算机二级等级考试试题及答案No.3356中部分知识点的详细解析。这些知识点不仅涵盖了程序设计的基础概念,还涉及到了数据库管理和软件应用...

    软件工程师实习报告3000字 (2).pdf

    11. **交互设计原则**:报告列举了几个交互设计上的低级错误,包括用户对操作方式的理解不清、视觉暗示误导等。这些提醒我们,在设计产品时应遵循清晰、直观和一致的设计原则。 总结起来,这份实习报告揭示了软件...

    2021-2022计算机二级等级考试试题及答案No.334.docx

    5. 编译程序是一种将高级语言程序翻译成低级语言程序的工具,它构造复杂,但通常会进行出错处理。 6. 在JavaScript中,document.write()用于在HTML文档中输出内容。 7. Checkbox(复选框)表单元素允许用户在一组...

    员工管理系统

    此外,作为初学者的作品,可能在代码规范、错误处理、用户体验等方面存在不足。这正是成长的机会,通过不断的反馈和优化,可以提升编码技能,理解软件工程的全过程,包括需求分析、设计、编码、测试和维护。 总的来...

Global site tag (gtag.js) - Google Analytics