记录了这篇文章,在工作中借来了几个js框架ui框架,忘记了js基础的api。 目的是自己复习以下母语js操作方法。 所有js框架都基于原生js方法和属性,特别是vue源代码使用原生js开发,处于自下而上模式
节点节点列表html收集
1.1节点
Node是接口,各种类型的DOM API对象从该接口继承。 可以以相同的方式处理这些不同类型的对象; 例如,继承同一组的方法,或用同样的方法进行测试。
以下所有接口都从Node继承方法和属性:
文档、元素、Attr、Characterdata(whichtext、Comment、and CDATASection inherit )、处理安装、文档
注意
节点是许多类型DOM的父类,所有DOM都继承Node。
要素DOM、属性DOM、文本DOM都是实现Node (接口)的实现类。
常用节点操作方法jquery方法
node.removechild$(x ).remove ) )。
Node.replaceChild
((x ) ) .替换全部) ) )。
Node.insertBefore
((x ) ).insertAffter ) ) )。
Node.hasChildNodes
node.clonenode$(x ).clone ) )。
搜索节点关系
Node.parentNode parent (
Node.childNodes children (
Node.nextSibling next (
Node.previousSibling prev (
Node.firstChild first (
Node.lastChild last (
1.2节点列表
NodeList对象是节点的集合,通常为
Node.childNodes,
document.getElementsByName和
document.querySelectorAll返回
注意
返回的节点集合包括forEach、entries和keys方法
换行符标签中的所有文本注释都被视为节点
例如:
这是标签
这是文字
Leto div=document.getelementsbyname (age );
LTO test=document.getelementbyid (' test );
console.dir(otest.childnodes ); //NodeList对象
console.dir(odiv ); //NodeList对象
console.log (文档. queryselectorall (' div ) )//NodeList对象
o test.child nodes.foreach (item={
控制台. log (item;
() )
打印的oTest.childNodes
NodeList.png
1.3 html收集
TMLCollection是一个特殊的NodeList集合,包含多个元素(元素顺序为文档流中的顺序),它们是实时更新的,并在包含的元素更改时自动更新。 此外,它是一个伪数组,必须像array.prototype.slice.call (nodelist,2 )那样调用,才能像数组一样操作。
获取方法
document.getelementsbyclassname
document.getElementsByTagName
注意
这是伪数组没有数组对应的常见方法。
prototype.slice.call(nodelist,2 ) )。
1.4如何区分节点信息
这是标签
这是文字
console.log (document.getelementbyid (' test ' ).nodeType )//1 element_node元素节点
console.log (document.getelementbyid ) test ).getattribute node (name ).nodeType )//2 attribute_node属性节点
console.log (document.getelementbyid (' test ' ).lastChild.nodeType )//3 text_node文本节点
搜索节点
document.getelementbyid :根据id搜索元素,大小写敏感,如果有多个结果,则只返回第一个;
document.getelementsbyclassname :根据类名搜索元素,用空格分隔多个类名,并返回一个HTMLCollection。 请注意兼容性IE9 (包括)。 除了document,其他元素也支持getElementsByClassName方法;
document.getElementsByTagName :根据标记搜索元素。 *表示查询所有标记并返回一个HTMLCollection。
document.getElementsByName :根据元素的name属性进行搜索,并返回NodeList。
document.querySelector :返回单个节点,IE8 (如果匹配多个结果,则只返回第一个结果。
返回document.querySelectorAll个NodeList,IE8 ()。
document.forms :获取当前页面的所有form,并返回一个HTMLCollection;