JS笔记—03(DOM编程)
1. 动态体现:HTML代码加载到浏览器,代码运行后改变文档(DOM树)增删改查节点。
例如:ajax(不是新技术,是几个技术的合体js+http后台操作)就是这样的原理
2.js对象(浏览器对象、脚本对象、HTML对象)
3.添加文本方法
a.第一种创建文本节点
创建元素节点:createElement()
创建文本节点:createTextNode():也可以加空格用
添加节点用appendChild();
得值用:innerHTML
b.第二种直接赋值
innerHTML="":直接赋值
得值用:NodeValue
4.给元素对象设置属性
a.第一种方法
object.属性=""
b.第二种方法
setAttribute("属性", "值");
5.设置链接属性
.href="#";
.onclick = function() {}
this.代表当前对象,parentNode:父节点
6.加空格
opra.innerHTML="<a href="#" onclick='upda(this)'>更新</a>  <a href
= "#" onclick='dela(this)'>删除</a>
7.元素a.innerHTML会重写元素标记内容(覆盖)
要显示则用a.innerHTML+="html代码";
8.三大重点元素:document. element. node
9最后一个省市联动:IE和火狐不兼容,建议使用document.createElement();方法,
而不使用new Option();因为代码会冗余。
二、代码中遇到的问题:
第一个例子:给节点赋值时,底层用文本节点:var txtNode = createTextNode()
也可以:父节点.innerHTML直接赋值
从节点取值时,用innerHTML直接取值,
也可以:txtNode.nodeValue直接取值;
第二个例子:ul列表输出 nodeType.nodeName.nodeValue
特注:++++++老师说当nodeType=1时是类型,=2时是名字,=3时是值++++。
a. 可以用for(var i = 0;i < arr.length; i++)循环
b. 也可以用for(x in arr) {
if(x >= 0) {
arr[x].nodeType
}
}
第三个例子:给div标签里添加超链接
注意使用innerHTML直接给div赋值时会发生超链接标签覆盖HTML内容的问题
解决方法:mydiv.innerHTML += "超链接代码";
有三个方法加<a href>:
a.innerHTML直接赋值div标签
b.创建a标签,设置属性,设置内容,再依次添加div标签
c.创建a标签,创建文本节点,设置属性,再依次添加
标注:++++++老师说的是用appendChild():必须加的是对象而不是文本++++。
details:详情
estimate/evaluate:评价
第四个例子:变幻面板:点击链接,改变下边的面板的内容(用div来操控)
div属性:style = "display:none/block"
none:不显示div内容
block:显示div的
注+++如果是超链接,则不能用window.onload = function() {}
因为按钮是只点击一次,而超链接要多次变幻。
第五个例子:省市联动
<select>标签事件onchange():事件会在域的内容改变时发生。
清空列表:length = 1;(只有一个请选择)
JS笔记—03(DOM编程)的更多相关文章
- 高性能JS笔记3——DOM编程
一.访问与修改DOM DOM和JS 相当于两个岛屿,访问操作的次数越多,要交的过路费越多,对性能产生很大影响. 减少访问DOM的次数,把运算尽量留在JS端操作. 二.innerHTML 对比 DOM ...
- 读JS高性能总结——DOM编程(一)
DOM是一个与语言无关的API,它在浏览器中的借口却是用JS来实现的. 浏览器通常会把DOM和JS独立实现. 在IE中,JS的实现名是JScript,位于jscript.dll文件中,DOM实现则是m ...
- 前端开发工程师 - 03.DOM编程艺术 - 第1章.基础篇(下)
第1章.基础篇(下) Abstract: 数据通信.数据存储.动画.音频与视频.canvas.BOM.表单操作.列表操作 数据通信(HTTP协议) HTTP事务: 客户端向服务器端发送HTTP请求报文 ...
- 前端开发工程师 - 03.DOM编程艺术 - 第1章.基础篇(上)
第1章.基础篇(上) Abstract:文档树.节点操作.属性操作.样式操作.事件 DOM (Document Object Model) - 文档对象模型 以对象的方式来表示对应的html,它有一系 ...
- JS性能优化——DOM编程
浏览器中的DOM 天生就慢 DOM是个与语言无关的API,它在浏览器中的接口却是用JavaScript实现的.客户端脚本编程大多数时候是在个底层文档打交道,DOM就成为现在JavaScript编码中 ...
- [js笔记整理]DOM 篇
一.节点类型 1.元素节点:HTML元素 2.文本节点:元素标签中的内容 3.属性节点:元素的属性 (检测节点类型:node.nodeType //元素=1,属性=2,文本=3) 二.使用DOM获取元 ...
- 前端开发工程师 - 03.DOM编程艺术 - 期末考试
期末考试客观题 返回 倒计时: 01:24 1 单选(2分) 以下选项中不是节点类型的是 A. COMMENT_NODE B. DOCUMENT_NODE C. BODY_NODE D. E ...
- JS笔记03
JS图片库 标记 需求效果: 网页中的图片链接显示在网页中的图片框内部而不是打开新的页面 //html部分 <!DOCTYPE html> <html> <head> ...
- Node.js 笔记03
一.buffer(缓存区) Node里面的buffer,是一个二进制数据容器,数据结构类似与数组,专门用于Node中数据的存放 1. buffer的基本使用 历史上的使用方式:const buf1 ...
随机推荐
- react img 被自动转成base64,无法根据当前路径来动态改变值的解决办法
项目需求,需要根据当前的图片的路径值的来(加或者减)动态改变其值: state定义如下: this.state={ basket01:0+require("../../img/egg/egg ...
- 使用autoconf与automake自动生成MakeFile文件
automake主要通过编辑Makefile.am来控制它的行为,下面就常用的三个Makefile.am配置做出说明. 1.1. autotools的工作原理 autotools最终是为了生成Make ...
- keras学习简单线性回归【1】
转自:https://morvanzhou.github.io/tutorials/machine-learning/keras/2-1-regressor/ 总的代码的过程就是: 1.导入模块+创建 ...
- Json常用操作
1, 获取json字符串中属性(传统方式) import net.sf.json.JSONObject JSONObject json = JSONObject.fromObject(response ...
- shell 脚本中如何添加多行注释
shell中有时会用到多行注释,一种时vim的快捷方式,我不太熟悉,一种是如下 :<<! ......! 使用: :<< !.......! 比如: :<< ! ...
- [LeetCode] 590. N-ary Tree Postorder Traversal_Easy
Given an n-ary tree, return the postorder traversal of its nodes' values. For example, given a 3-ary ...
- [Java in NetBeans] Lesson 04. Class / Objects
这个课程的参考视频和图片来自youtube. 主要学到的知识点有: Class: Blueprint for an object. (e.g. dog is a class) Object: cust ...
- nodejs+mysql入门实例(链接到数据库)
//连接数据库 var mysql = require('mysql'); var connection = mysql.createConnection({ host: '******', //数据 ...
- vmware 下linux 共享文件夹消失
今天遇到了vmware下linux和宿主win7系统共享文件,突然在linux下消失的问题 环境:vmware10.0.0下装了centos, 主机系统是win7. 背景:事情的初衷是想让win7 下 ...
- Hybrid设计--账号体系的建设
前后端分离:开发效率高,没有SEO 现在是重客户端设计:交互和业务逻辑是前端来写,适合做前后端分离.对前端更友好,提高了效率. 传统模式开发:整个业务逻辑是server端写,不适合做前后端分离.ser ...