window
对象代表浏览器窗口。window.alert(1) // 弹窗
window.innerHeight // 获取浏览器窗口的内容区域的高度
window.innerWidth // 获取浏览器窗口的内容区域的宽度
window.outerHeight // 获取浏览器窗口外侧的高度
window.outerWidth // 获取浏览器窗口外侧的宽度
navigator
封装了一些浏览器信息。navigator.appName // 返回浏览器官方名称。不能保证此属性返回的值是正确的。
navigator.appVersion // 返回浏览器版本。不能保证此属性返回的值是正确的。
navigator.userAgent // 返回当前浏览器的用户代理。
navigator.platform // 返回浏览器平台名,不确定此值是否有效。
navigator
对象,因为会被人为修改。screen
代表当前渲染窗口中和屏幕有关的属性。screen.width // 以像素为单位返回屏幕的宽度
screen.height // 以像素为单位返回屏幕的高度
location
代表当前页面的 URL 信息。location.host // 域名字符串
location.href // URL字符串
location.protocol // URL对应协议的字符串
location.reload() // 重新加载来自当前URL的资源(刷新网页)
location.assign('URL') // 加载给定URL的内容资源到这个location对象所关联的对象上
document
代表当前载入的页面,并作为网页内容的入口,也就是 DOM 树。document.title // 获取或设置当前文档的标题
document.cookie // 返回一个使用分号分隔的cookie列表,或设置(写入)一个cookie
cookie:httpOnly
来保障 cookie 的安全(后面再详细学习)// 获取具体的DOM文档树节点
document.getElementById() // 返回具有给定id标识元素的引用对象。
document.getElementsByClassName() // 返回具有给定类名的元素列表。
document.getElementsByTagName() // 返回具有给定标签名的元素列表。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<dl id="app">
<dt>Javadt>
<dd>JavaSEdd>
<dd>JavaEEdd>
dl>
body>
html>
document.getElementById("app")
来获取指定的文档树节点:history
允许操作浏览器的曾经在标签页或者框架里访问的会话历史记录。history.back() // 转到浏览器会话历史的上一页,等同于点击浏览器的回退按钮
history.forward() // 转到浏览器会话历史的下一页,等同于点击浏览器的前进按钮
document.getElementById() // 返回具有给定id标识元素的引用对象。
document.getElementsByClassName() // 返回具有给定类名的元素列表。
document.getElementsByTagName() // 返回具有给定标签名的元素列表。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<div id="father">
<h1>标题一h1>
<p id="p1">p1p>
<p class="p2">p2p>
div>
<script>
// 获取 DOM 节点,对应 CSS 选择器
let h1 = document.getElementsByTagName("h1"); // 标签
let p1 = document.getElementById("p1"); // id
let p2 = document.getElementsByClassName("p2"); // class
let father = document.getElementsByTagName("father");
let children = father.children; // 获取父节点下的所有子节点
// father.firstChild
// father.lastChild
script>
body>
html>
jQuery();
来获得 DOM 节点;// 操作文本
element.innerText // 修改文本的值
element.innerHTML // 可以解析 HTML 标签
// 操作 CSS
// element.style - 设置 CSS 样式
element.style.color // 字体颜色
element.style.fontSize // 字体大小(注意是驼峰命名)
element.style.padding // 内边距...
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<div id="id1">div>
<div id="id2">div>
<div id="id3">abcdiv>
<script>
// 获取 DOM 节点
let id1 = document.getElementById("id1");
let id2 = document.getElementById("id2");
let id3 = document.getElementById("id3");
// 操作文本
// innerText - 修改文本的值
id1.innerText = "hello";
// innerHTML - 可以解析 HTML 标签
id2.innerHTML = "world";
// 操作 CSS
// style - 设置 CSS 样式
id3.style.color = "red";
id3.style.fontSize = "50px";
id3.style.padding = "2em";
script>
body>
html>
element.parentElement // 获取当前节点的父元素节点。如果该元素没有父节点,或者父节点不是一个 DOM 元素,则返回 null。
element.removeChild(child) // 从 DOM 中删除一个子节点。返回删除的节点。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<div>
<h1>标题一h1>
<p id="p1">p1p>
<p class="p2">p2p>
div>
<script>
// 获取 DOM 节点
let self = document.getElementById("p1");
// 获取父节点
let father = self.parentElement;
// 删除 DOM 节点
father.removeChild(self); // 方式一
father.removeChild(father.children[0]); // 方式二
script>
body>
html>
children
都会发生变化,因此我们在使用father.children[index]
删除多个节点时一定要注意!innerHTML
属性就可以增加一个元素了。但是当这个 DOM 节点已经存在元素了时,我们就不能通过此方法添加元素了,因为这样会产生覆盖。将已存在的标签追加到末尾,实现插入节点
element.appendChild(aChild) // 将一个节点追加到指定父节点的子节点列表的末尾处。如果将被插入的节点已经存在于当前文档的文档树中,那么 appendChild() 只会将它从原先的位置移动到新的位置(不需要事先移除要移动的节点)。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<p id="js">JavaScriptp>
<div id="list">
<p id="se">JavaSEp>
<p id="ee">JavaEEp>
<p id="me">JavaMEp>
div>
<script>
let js = document.getElementById("js");
let list = document.getElementById("list");
list.appendChild(js); // 追加到末尾
script>
body>
html>
创建一个新的标签,实现插入节点
element.setAttribute(name, value) // 设置指定元素上的某个属性值。如果属性已经存在,则更新该值;否则,使用指定的名称和值添加一个新的属性。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<p id="js">JavaScriptp>
<div id="list">
<p id="se">JavaSEp>
<p id="ee">JavaEEp>
<p id="me">JavaMEp>
div>
<script>
let body = document.getElementsByTagName("body");
let list = document.getElementById("list");
// 创建一个新的节点,实现插入
// 方式一
let newP = document.createElement("p"); // 创建一个 p 标签
newP.id = "newP"; // 设置 id
newP.innerText = "hello,world"; // 添加文本
list.appendChild(newP); // 追加到 list 的子节点的末尾
// 方式二
let myScript = document.createElement("script"); // 创建一个 script 标签
myScript.setAttribute("type", "text/javascript"); // 设置 type 属性为 text/javascript
list.appendChild(myScript); // 追加到 list 的子节点的末尾
// 应用案例: 修改 body 的 CSS 样式
// 方式一
let bd = document.getElementsByTagName("body")[0]; // 注意: getElementsByTagName()获得的是一个列表,所以要加索引
bd.style.backgroundColor = "skyblue"; // 设置 body 的背景颜色为天蓝色
// 方式二
let myStyle = document.createElement("style"); // 创建一个空的 style 标签
myStyle.setAttribute("type", "text/css"); // 设置 type 属性
myStyle.innerHTML = "body{color: red}"; // 设置 body 的字体颜色为红色
document.getElementsByTagName("head")[0].appendChild(myStyle); // 追加到 head 的子节点的末尾
script>
body>
html>
补充:根据参考节点的位置插入新节点
parentNode.insertBefore(newNode, referenceNode) // 在参考节点之前插入一个拥有指定父节点的子节点。如果给定的子节点是对文档中现有节点的引用,insertBefore() 会将其从当前位置移动到新位置(在将节点附加到其他节点之前,不需要从其父节点删除该节点)。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<p id="js">JavaScriptp>
<div id="list">
<p id="se">JavaSEp>
<p id="ee">JavaEEp>
<p id="me">JavaMEp>
div>
<script>
let ee = document.getElementById("ee");
let js = document.getElementById("js");
let list = document.getElementById("list");
list.insertBefore(js, ee); // 将新节点 js 插入到参考节点 ee 之前
script>
body>
html>