<div class="wrap">
<ul id="ul">
<li>01</li>
<li>02</li>
<li>03</li>
<li>04</li>
</ul>
</div>
<script>
var ul = document.getElementById('ul');
var lis=document.querySelectorAll('li');
console.log(ul.nodeType);//1:元素节点 2:属性节点 3文本节点
console.log(ul.nodeName);//元素标签名
console.log(ul.nodeValue);//始终为null
console.log(lis);
console.log(Object.getOwnPropertyDescriptor(window,'lis'));
console.log(lis.item(0));
console.log(lis.constructor); //查看构造函数
console.log(Array.from(lis))//转化为数组 </script>
<div class="wrap">
<ul id="ul">
<li>01</li>
<li>02</li>
<li>03</li>
<li>04</li>
</ul>
</div>
<script>
var ul=document.querySelector('ul');
var li=document.querySelector('li');
var lis=document.querySelectorAll('li'); /*节点之间关系*/
console.log(ul.firstChild);//子集节点
console.log(ul.firstElementChild);//子集第一个元素节点
console.log(ul.lastElementChild);//子集最后一个元素节点 console.log(li.parentNode);//直接父元素
console.log('下一个兄弟元素节点',li.nextElementSibling);//下一个兄弟元素节点
console.log('上一个兄弟元素节点',li.previousElementSibling);//上一个兄弟元素节点
console.log(ul.childNodes);//ie9+ ie8会有文本节点 /*\
* 父.appendChild(子) 父级元素内部最下面添加子元素
* 父.insertBefore(要插入的元素,子元素)
* 父.replaceChild(新元素,被替换掉的子元素);//
*
* */
var myli=document.createElement('li');
var p=document.createElement('p')
p.innerHTML='dasda';
myli.setAttribute('name','li');
myli.innerText=33; myli1=myli;//如果不赋值 下面两句会操作同一个节点
ul.appendChild(myli);
ul.insertBefore(myli,li);
ul.replaceChild(p,li);// /*节点复制*/
var clone=ul.cloneNode(); //克隆其自身不包含子元素
var clone1=ul.cloneNode(true);//深复制 会克隆他的子元素
console.log(clone);
console.log(clone1);
<div class="wrap">
<ul>
<li>01</li>
<li>02</li>
<li>03</li>
<li>04</li>
<li>05</li>
</ul>
</div>
<script>
/*
* js中通过Document类型表示文档
* 在浏览器中document对象是HTMLDocument的一个实例 表示整个页面
* document 是window对象的一个属性
*
*
* */ console.log(document.constructor) //ƒ HTMLDocument() { [native code] } console.log(window.document);
console.log(window.document.nodeName);
console.log(window.document.nodeValue);
console.log(window.document.nodeType);
/*下面两个输出一致指向html*/
console.log(document.childNodes[1]);//
console.log(document.documentElement);
console.log(document.body);
console.log(document.doctype);//各浏览器支持程度不一样
console.log(document.doctype === document.childNodes[0]);//true
console.log(document.title);//文档标题 可赋值
console.log(document.URL);//
console.log(document.domain);//域名
console.log(document.URL === location.href);//true /*查找元素*/
var nodes = document.getElementsByTagName('*');
console.log(nodes)
   /*
setAttribute()
getAttribute()
removeAttribute()
* */
var li=document.querySelector('li');
li.setAttribute('name','hxq');
li.setAttribute('www','hxq');
console.log(li.getAttribute('name'));
li.removeAttribute('name')

第十章:DOM的更多相关文章

  1. 第十章 DOM

    10.1节点层次 html元素通过元素节点表示,特性节点通过特性节点表示,文档类型节点通过文档类型节点访问,这些类型都继承一个基类型. 10.1.1 Node类型 JavaScript中的所有节点类型 ...

  2. JavaScript高级程序设计学习笔记第十章--DOM

    1.DOM:文档对象模型,是针对 HTML 和 XML 文档的一个 API(应用程序编程接口). 2.DOM 可以将任何 HTML 或 XML 文档描绘成一个由多层节点构成的结构. 3.文档节点是每个 ...

  3. JAVASCRIPT高程笔记-------第十章 DOM对象

    10.1.1 node类型 --除IE外 所有浏览器都可以访问到这个类型 :JS中所有的节点类型都继承自Node类型 nodeName 与nodeValue  如果是一个元素 那么nodeName中保 ...

  4. 第十章—DOM(0)—NODE类型

    DOM1定义了一个node接口,该接口由DOM的所有节点类型实现. 所有的节点都存在这样或那样的关系.在HTML中,head,body可以看出是html的子元素,html是head,body的父元素, ...

  5. 第十章—DOM(一)——Document类型

    DOCUMENT类型 JS通过document类型表示文档,在文档中document对象是HTMLDocument的一个实例,表示整个HTML页面.document对象是window对象的一个属性,因 ...

  6. 读书笔记 - js高级程序设计 - 第十章 DOM

      文档元素 是文档的最外层元素,在Html页面中,文档元素始终都是<html>元素 在xml中,任何元素都可以是文档元素 Node类型 Node.ELEMENT_NODE 元素 Node ...

  7. 第十章—DOM(三)——Text类型

    文本节点由TEXT类型表示,包含纯文本内容,Text节点具有以下特征: 看看下面的代码: div元素开始和结束标签只要存在内容,就会创建一个文本节点.可以使用以下代码来访问元素的这些文本子节点: 访问 ...

  8. 第十章—DOM(二)——Element类型

    Element类型用于表现HTML和XML,提供了对元素标签名,子节点和特效的访问.Element节点具有以下特征: 要访问元素的标签名,可以使用nodeName属性,也可以使用tagName属性.这 ...

  9. 第10章DOM笔记

    第十章 DOM 一 Node类型 共有12种节点类型,每个节点都有nodeType属性,用于表明节点类型,nodename 表示标签名称 nodeValue始终为null 1.操作节点 a)  app ...

  10. js-JavaScript高级程序设计学习笔记6

    第八章 BOM 1.BOM的核心对象是window,他表示浏览器的一个实例.在浏览器中,window对象有双重角色,它既是通过JS访问浏览器窗口的一个接口,又是ES规定的Global对象. 2.定义全 ...

随机推荐

  1. 一个典型的PHP分页实例代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 面试题:Concurrenthashmap原理分析 有用

    一.背景: 线程不安全的HashMap     因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap.   效率低下的H ...

  3. Linux kgdb命令

    一.简介 kgdb是一种源码级的Linux内核调试器.使用kgdb调试内核时,需要结合gdb一起使用,使用他们可以对内核进行单步调试,设置断点,观察变量.寄存器的值等与应用调试相关的功能.然而也有其限 ...

  4. 获取iframe自适应后的宽高

    1.同域 一:引入jquery <script type="text/javascript" src="../jquery.min.js">< ...

  5. c++中怎么实现Java中finally语句

    所有学习c++的书籍都明确提出了,不要使用goto, 以免造成程序流程的混乱,使理解和调试程序都产生困难. 但是我们遇到这样一个场景怎么办:就是不管程序执行成功与否,都要执行一些资源释放语句,相当ja ...

  6. win7 64位 [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认

    问题描述: VBA程序连接Access数据库,Excel中执行相关宏,提示[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认 解决方案: 1.重新安装 AccessDa ...

  7. JVM各区域的用途

    程序计数器 用于给字节码解释器来选取吓一跳需要执行的字节码指令.每个线程有一个独立的程序计数器去,且各个线程之间互不影响.如果线程正在执行一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令 ...

  8. gRPC官方文档(异步基础: C++)

    文章来自gRPC 官方文档中文版 异步基础: C++ 本教程介绍如何使用 C++ 的 gRPC 异步/非阻塞 API 去实现简单的服务器和客户端.假设你已经熟悉实现同步 gRPC 代码,如gRPC 基 ...

  9. Android - AndroidStudio 的熟悉

    开发环境 * JDK * SDK * AndroidStudio * Genimotioin HelloWorld [ 第一个Android项目建立 ] * 创建项目  [ 项目相关目录 ] Hell ...

  10. thinkphp3.2.3 无法调用带下划线的模型

    thinkphp 3.2.3 如果表名中带有下划线,在分割的时候命名模型类,首字母大写,例如:order_customer_bom 为表名 .模型名为OrderCustomerBomModel 引用的 ...