文档对象模型
1.DOM树是Web页面的模型
2.使用DOM树
一、访问元素:1)选择单个元素节点 2)选择多个元素 3)在元素节点之间遍历
二、操作这些元素:1)访问和更新文本节点 2)操作HTML内容 3)访问或更新属性值
3.缓存DOM查询
当多次查找同一个元素时,应该把该元素放在一个变量中来保存,该元素的属性和方法可以用该变量来调用。
var itemOne=getElementById('one');
4.访问元素
1)返回单一节点
2)返回多元素节点 NodeList
5.从NodeList中选择元素
使用item()方法或者[ ]索引编号
6.使用class属性/标签名/CSS选择器选择元素
7.循环遍历NodeList
8.遍历DOM
寻找父节点、兄弟节点、子节点的第一个和最后一个元素
9.空白节点
方法1)去掉空白,但会使代码难以阅读
方法2)避免使用DOM属性,而是用jQuery
10.如何获取/更新元素内容
1)使用nodeValue属性获取和更新文本节点 document.getElementById('one').firstChild.nextSibling.nodeValue;
2) 访问和修改文本节点 .replace(' A ',' B ')
3) 使用textContent(和innerText)获取和更新文本
var firstItem=document.getElementById('one').textContent/innerText
(innerText不包含子元素)
4) 添加或者移除HTML内容
一、innerHTML属性
var firstItem=document.getElementById('one').innerHTML
二、DOM操作
A:DOM操作添加元素
①创建元素节点createElement() ②设置内容createTextNode() ③把其添加到DOM中.appendChild()
B: DOM操作移除元素
removeChild() 该函数是在父元素的立场上移除子元素
11.属性节点
先得到一个元素节点 document.getElementById('one')
1)检查一个属性并获取其值
2)创建属性并更改其值
① firstItem.className='complete';
② firstItem.setAttribute('class' ,'cool')
3)移除属性
事件
1.不同的事件类型
2.事件如何触发JS代码:选择元素,指定事件,调用代码
3.将事件绑定到元素的三种方法:html(不推荐)、DOM事件处理、DOM监听器(处理多个响应)
DOM监听器:el.οnblur=checkUsername;//调用checkUsername函数
4.事件监听器:addEventListener(元素绑定监听器,那么在什么情况下document绑定监听器?)
可以使用function()来当匿名函数,防止事件未触发时函数调用,用removeEventListener()移除监听器。
5.在事件监听器中处理参数
6.用备用方法设置监听器
7.事件流:事件冒泡,事件捕获
8.事件对象 个人感觉是区分于getElementById()的另一种获取目标的方法
9.在事件监听器中使用事件对象
10.事件对象改变默认行为:preventDefault() stopPropagation()
11.使用事件委托:把事件处理程序放在一个容器元素上,使用事件对象的target查找其后代是哪个元素发生了事件。
12.事件发生在哪个元素上?1.target属性 2.this关键字(target可以被传递,但是this?)
13.不同的事件类型:
1)W3C DOM 事件发生在哪个元素上,用户按下了什么键
2)HTML5 表单提交或者表单元素变动
3)BOM
14.用户界面事件 window.addEventListener('load',setup,false);
15.元素事件(如focus,blur.......) el.addEventListener
16.鼠标事件 el.addEventListener
17.键盘事件 el.addEventListener
18.表单事件 el.addEventListener
19.变动事件和变动观察者 el.addEventListener
20.HEML5事件 window.addEventListener
jQuery
对于每个元素的方法操作
1.查找元素
2.在选中元素上执行操作
3.匹配结果集,获取和设置数据的jQuery方法
4.将jQuery选取结果缓存在变量中,为表区分,变量前面用$
5.循环
在jQuery中,具有更新所有元素的能力。若是要从一组元素中获取信息,可以使用euch()方法
6.链式操作
7.检查页面是否可以使用
$(document).ready(function(){})
简写:$(function(){})
让脚本紧跟在
之前,以便于DOM加载好让jQuery能获取元素
8.获取元素内容
.html();返回第一个匹配元素内部HTML包括其后代所有节点
.text();返回选取结果中每一个元素(包括后代)的文本
9.更新元素
1).html();
2).text();
3).replaceWith();
4).remove();
括号中可包含方法.html(function(){ return '+$(this).text()+''});
10.插入元素
1)将新元素创建为jQ元素,也可以直接插入
2)像页面中添加元素
.before() .after() .prepand() .append()
11.获取和设置属性值
读取或者设置,更改指定的属性.attr()
添加属性.addClass()
移除指定属性.removeAttr()
从class属性中移除一个属性值ad
dClass() //与上一个的区别是
12.获取和设置css()属性
13.操作选取结果中的每一个元素.each()
23.剪切和复制元素
对于元素触发的事件的操作
14.事件方法
$('li').on('click',function(){}):
15.事件对象e,该事件对象中包含和此事件相关的方法和属性
16.事件处理程序中的其他参数
.on('需要响应的事件' [,selector(选择器)] [,data(传递的额外信息)] ,function)
17.特效(过渡效果和移动)
18.CSS属性动画
.animate()用来创建自己的动画特效,通过改变CSS属性
19.遍历DOM的方法
20.在选取结果中添加或者筛选元素
与10.(2)的区别是,10.(2)是在页面中添加
而本方法是在元素商添加:$('li:not(.hot)') ($this.is('.hot')) $('li:contains("honey")')
21.按序号查找元素
除了可以通过元素的属性找到元素之外还可以通过索引找到元素
22.选取表单元素
表单元素选择其,方法和事件
24.HTML框模型的尺寸
获取,设置和修改
25.窗口和页面尺寸 元素在页面中的位置
26.在页面中引用jQ的1方法
27.脚本放置的位置前面
28.jQ文档,使用插件,防止和其他的库起冲突
Ajax和JSON
Ajax是一种无需刷新整个页面就能为页面中的某部分加载数据的技术,数据通常会以JS对象表示法的JSON格式来发送
1.什么是Ajax
2.为什么使用Ajax?
Ajax使用异步处理模型。
A.在页面正在加载时使用Ajax,可以异步处理
B.在页面加载之后使用Ajax,可以响应请求触发脚本刷新页面中的某部分
3.Ajax是如何工作的?
浏览器请求信息——服务器响应并返回数据(XML\HTML\JSON)——浏览器处理内容
4.处理Ajax请求及响应
A.请求:
var xhr=new HttpRequest();
xhr.open('GET','dataa/test.json',true);
xhr.send('search=arduino‘);
B 响应 :
xhr.οnlοad=function()
{ if(xhr.status===200){}}
5.数据格式
6.XML:可标记语言
7.JSON:JS对象表示法
{
”location":"San Francisco, CA"
}
8.使用JSON数据
JSON.stringify():JS->JSON
JSON.parse():JSON->JS
9.使用Ajax加载HTML
无论服务器返回的是XML\HTML\JSON,创建请求和检查文件是否可用是一样的,不同是如何处理返回的数据。
当服务器响应了请求,会发回一条状态信息status
function(){
if(xhr.status===200){ document.getElementById('content').innerHTML=xhr.responseText';}
10.使用Ajax加载XML
XML必须被转换成HTML才能显示在页面上,XML和HTML处理响应的语句不一样
var response=xhr.responseXML;
var events=response.getElementByTagName('event');
然后添加文本节点和元素。
11.使用Ajax加载JSON With Ajax
responseObject=JSON.parse(xhr.responseText) 先转换成JS对象再操作
12.使用其他服务器返回的数据
13.JSONP的工作原理
14.jQuery与Ajax:请求
15.jQuery与Ajax:响应
16.使用jQuery将HTML加载到页面中
17.jQuery的Ajax简写方法
18.请求数据
19.向Ajax发送表单 post(),收集表单数据,在服务器端(查看是否来自Ajax的请求以便能异步处理)
19.提交表单
20.加载JSON与处理Ajax错误
.done()
当请求失败时也提供了方法来响应:.fail()\always()
21.Ajax请求的细粒度控制
API
1.HTML5 JavaScript API
2.特性检测
先检测是否支持这些功能,再使用 navigator.geolocation
3.Modernizr Modernizr.geolocation
4.地理位置API:找到用户的位置
5.Web存储API:在浏览器中存储数据
//
区别
为某元素设定事件触发函数时,可能会觉得addEventListener和on事件的功能差不多,但是,addEventListener除了可以设置元素触发顺序外,还能多次绑定事件,因为 on 事件多次绑定的话会出现覆盖。
具体举例:https://blog.csdn.net/KNIGH_YUN/article/details/80539193