javascript查漏补缺之十四 ——《客户端web api》
/ / 点击 / 阅读耗时 5 分钟javascript api的共同点
基于对象
有可识别的入口点
它们使用事件来处理状态的变化
它们在适当的地方有额外的安全机制
-
document.querySelector(selectors)
文档对象模型Document引用的querySelector()方法返回文档中与指定选择器或选择器组匹配的第一个 html元素Element。 如果找不到匹配项,则返回null。
selectors:包含一个或多个要匹配的选择器的 DOM字符串DOMString。 该字符串必须是有效的CSS选择器字符串
使用深度优先的遍历顺序
返回Element对象
document.querySelectorAll(selectors)
使用深度优先的遍历顺序
selectors 是一个由逗号连接的包含一个或多个CSS选择器的字符串
返回一个静态的 NodeList 类型的对象
document.createElement();
var para = document.createElement('p');
Node.appendChild()
sect.appendChild(para);
Document.createTextNode()
创建一个文本节点
node.textContent
node.innerText
node.innerHTML
返回文本内容和标签
Node.removeChild()
当知道要删除节点以及父节点的时候可以使用这个方法:
sect.removeChild(linkPara);
删除一个仅基于自身引用的节点
linkPara.parentNode.removeChild(linkPara);
Node.cloneNode(deep)
deep: 如果为true,表示执行深复制,当前节点的所有子节点也会一并复制
如果deep参数设为false,则不克隆它的任何子节点.该节点所包含的所有文本也不会被克隆,因为文本本身也是一个或多个的Text节点
这个函数复制的节点信息包括:克隆一个元素节点会拷贝它所有的属性以及属性值,当然也就包括了属性上绑定的事件(比如onclick=”alert(1)”),但不会拷贝那些使用addEventListener()方法或者node.onclick = fn这种用JavaScript动态绑定的事件
HTMLElement.style
- 使用这个属性的结果是样式都是内联样式。
Element.setAttribute()
- 使用这个方法设置的样式是普通的css样式表的样式:
Element.setAttribute(class, className)
。
- 使用这个方法设置的样式是普通的css样式表的样式:
获取视窗尺寸
window.innerWidth
:视窗宽度window.innerHeight
:视窗高度视窗的resize事件
1
2
3
4
5
6window.onresize = function() {
WIDTH = window.innerWidth;
HEIGHT = window.innerHeight;
div.style.width = WIDTH + 'px';
div.style.height = HEIGHT + 'px';
}
给DOM添加节点需要上述1、2、3、4、5五个方法;
下面这个例子里添加文本使用的是Node.textContent属性。
1
2
3
4
5
6
7
8
9
10
11var sect = document.querySelector('section');
var para = document.createElement('p');
para.textContent = 'We hope you enjoyed the ride.';
sect.appendChild(para);
var text = document.createTextNode(' — the premier source for web development knowledge.');
var linkPara = document.querySelector('p');
linkPara.appendChild(text);