javascript中childNodes与children的区别
1、childNodes:获取节点,不同浏览器表现不同;
IE:只获取元素节点;
非IE:获取元素节点与文本节点;
解决方案:if(childNode.nodeName=="#text") continue 或者 if(childNode.nodeType != '3') continue
2、children:获取元素节点,浏览器表现相同。
因此建议使用children。
3、firstChild与firstElementChild
相同点:获取父节点下的第一个节点对象;
不同点:1、firstchild:IE6,7,8:第一个元素节点;
非IE6,7,8:第一个节点,文本节点或者元素节点;
2、firstElementChild:IE6,7,8:不支持;
非IE6,7,8:第一个元素节点;
function firstChild(obj){
if(obj.firstElementChild) return obj.firstElementChild;
return obj.firstChild
}
4、lastChild与lastElementChild
相同点:获取父节点下的最后一个节点对象;
不同点:1、lastchild:IE6,7,8:最后一个元素节点;
非IE6,7,8:最后一个节点,文本节点或者元素节点;
2、lastElementChild:IE6,7,8:不支持;
非IE6,7,8:最后一个元素节点;
5、nextSibling与nextElementChild
相同点:获取后一个兄弟节点对象;
不同点:1、nextSibling:IE6,7,8:后一个兄弟元素节点;
非IE6,7,8:后一个兄弟节点,文本节点或者元素节点;
2、lastElementChild:IE6,7,8:不支持;
非IE6,7,8:后一个兄弟元素节点;
6、previousSibling与previousElementChild
相同点:获取前一个兄弟节点对象;
不同点:1、previousSibling:IE6,7,8:前一个兄弟元素节点;
非IE6,7,8:前一个兄弟节点,文本节点或者元素节点;
2、previousElementChild:IE6,7,8:不支持;
非IE6,7,8:前一个兄弟元素节点;
7、parentNode:获取父元素,不存在兼容性问题。
8、offsetParent:获取第一个设置定位的父元素;
offsetLeft:获取离第一个定位父元素的左距离;
offsetTop:获取离第一个定位父元素的上距离;
javascript中childNodes与children的区别的更多相关文章
- JavaScript中childNodes和children的区别
我在学习JavaScript对DOM操作的过程中,发现了使用childNodes属性,得不到我想要的结果,因此我就从JavaScript高级程序设计中了解了childNodes和children的区别 ...
- Javascript 中childNodes和children的区别
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- JavaScript中childNodes、children、nodeValue、nodeType、parentNode、nextSibling详细讲解
其中属性.元素(标签).文本都属于节点 <title></title> <scripttype="text/javascript"> windo ...
- js表单验证处理和childNodes 和children 的区别
一.对提交表单进行空值验证 html代码: <form action="#"onsubmit="return validate_form(this);" ...
- JavaScript中:表达式和语句的区别
JavaScript中:表达式和语句的区别 Javascript语言精粹:表达式是由运算符构成,并运算产生结果的语法结构.程序是由语句构成,语句则是由“:(分号)”分隔的句子或命令.如果在表达式后面加 ...
- JavaScript中Element与Node的区别,children与childNodes的区别
关于Element跟Node的区别,cilldren跟childNodes的区别很多朋友弄不清楚,本文试图让大家明白这几个概念之间的区别. Node(节点)是DOM层次结构中的任何类型的对象的通用名称 ...
- Javascript中setTimeout和setInterval的区别和使用
在javascript中,window对象有两个主要的定时方法,分别是setTimeout 和 setInterval,其语法基本上相同,但是完成的功能取有区别. setTimeout方法是定时程序, ...
- JavaScript 中 Property 和 Attribute 的区别详解
property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...
- javascript中typeof与instanceof的区别
JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前 ...
随机推荐
- EventBus事件总线框架(发布者/订阅者模式,观察者模式)
一. android应用内消息传递的方式: 1. handler方式-----------------不同线程间传递消息. 2. Interface接口回调方式-------任意两个对象. 3. In ...
- Angularjs 实现页面遮罩层功能
实现效果: 1.loading指令: "use strict" /** * Created by yw on 2015/9/27. * user defined loading d ...
- 启动hive命令时指定参数或自定义参数
启动hive命令时指定参数或自定义参数 在hive启动命令中指定一个参数 hive --hiveconf hive.job.submit.username=fuxin.zhao -e "se ...
- Visual Studio效率神器——超级扩展ReSharper安装和破解
Visual Studio效率神器--超级扩展ReSharper安装和破解 ReSharper的使用方法网络上有文章Resharper安装和破解极其简单,2分钟就搞定了.安装ReSharper官方 ...
- django drf CreateModelMixin和Serializer.validate_columun
view demo class ValidateCodeSet(mixins.CreateModelMixin, viewsets.GenericViewSet): serializer_class ...
- roadflow asp.net工作流自定义表单
在roadflow表单设计器不能满足很复杂的业务需求的时候,可以采用自定义表单(即表单页面自己做). 自定义表单就是自己写一个页面,包含控制器视图,然后将这个页面挂到流程上进行审批. 自定义表单分为以 ...
- brew安装指定版本boost
brew 如何安装指定版本的boost brew uninstall boost brew install boost@1.57 brew link boost@1.57 --force --over ...
- Ubuntu16.04 - 怎么能够更好设置PATH变量,便于管理?
“/etc/profile”是linux里面的全局变量设置文件,加入这里的PATH变量,全局都可以使用,非常方便.加入时候很简单了,直接在PATH末尾加入":+要加入的变量"就可以 ...
- Linux下MySQL数据库的备份与还原
昨天对公司数据库进行备份.用了以下的方法一. 导出1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql 如果要导出数据库全部: mysqldump - ...
- 报错:'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte
pandas的read_csv读取一个csv表格,报错. 解决方法:用editplus打开表格,改变编码格式为utf-8,保存,重新读取,通过.