console
window.onload = function() {
// document.getElementById
var oDiv1 = document.getElementById("Div1");
console.log("The nodeType of oDiv1 is " + oDiv1.nodeType);
console.log("There are " + oDiv1.childNodes.length + " child nodes in oDiv1");
console.log("The nodeType of the first child node of oDiv1 is " + oDiv1.childNodes[0].nodeType);
console.log("The nodeValue of the first child node of oDiv1 is " + oDiv1.childNodes[0].nodeValue);
console.log("The nodeType of the second child node of oDiv1 is " + oDiv1.childNodes[1].nodeType);
console.log("The tagName of the second child node of oDiv1 is " + oDiv1.childNodes[1].tagName);
console.log("The nodeType of the third child node of oDiv1 is " + oDiv1.childNodes[2].nodeType);
console.log("The nodeValue of the third child node of oDiv1 is " + oDiv1.childNodes[2].nodeValue);
console.log("There are " + oDiv1.attributes.length + " attributes in oDiv1");
console.log("The name of attribute of oDiv1 is " + oDiv1.attributes[0].name);
console.log("The nodeType of attribue of oDiv1 " + oDiv1.attributes[0].nodeType);
// getElementsByTagName
var oUls = document.getElementsByTagName("ul");
console.log("There are " + oUls.length + " ul in document." );
var oList1Lis = oUls[0].getElementsByTagName("li");
console.log("There are " + oList1Lis.length + " li in the first ul." );
var oDocLis = document.getElementsByTagName("li");
console.log("There are " + oDocLis.length + " li in the document." );
// getElementsByClassName
var oRadios = document.getElementsByClassName("radio");
console.log("There are " + oRadios.length + " radio class in the document." );
var oDivs = document.getElementsByTagName("div");
var oRadios1 = oDivs[1].getElementsByClassName("radio");
console.log("There are " + oRadios1.length + " radio class in the second div." );
// querySelector
// 使用id选择器去找到第一个值为id名的元素节点, 这种情况,尽量用getElementById,效率更高
var oList1 = document.querySelector("#List1");
console.log("Line 38: " + oList1.id);
// 使用元素选择器去找到所有的ul元素下的li子元素
var oLis = document.querySelectorAll("ul li");
console.log("Line 42: " + oLis.length);
oLis[0].style.color = "red";
oLis[1].style.color = "blue";
oLis[2].style.color = "green";
// 使用类选择器找到所有class为radio的元素, 这种情况,尽量用getElementByClassName,效率更高
var oClassRadios = document.querySelectorAll(".radio");
console.log("Line 49: " + oClassRadios.length);
// 使用选择器查找第一个class为radio的div元素
var oClassRadioDiv = document.querySelector("div.radio");
console.log("Line 53: " + oClassRadioDiv.tagName);
// 使用选择器查找第一个class为radio的div元素下所有calss为radio的子元素
var oClassDivRadios = oClassRadioDiv.querySelectorAll(".radio");
console.log("Line 57: " + oClassDivRadios.length);
// 使用伪类选择器找到第一个checked状态为真的input
var oCheckedInput = document.querySelector("input:checked");
console.log("Line 61: " + oCheckedInput.value);
// 使用元素选择器找到所有的ul元素,这种情况,尽量使用getElementByTagName,效率更高
var oLists = document.querySelectorAll("ul");
console.log("Line 65: " + oLists.length);
// getElementsByName
var oFruitInputs = document.getElementsByName("fruit");
console.log("Line 69: " + oFruitInputs[0].value)
//var oGenderInputs = oClassRadioDiv.getElementsByName("gender");
//console.log("Line 66: " + oGenderInputs[0].value)
// document.title
console.log("Line 76: " + document.title);
// document.body
console.log("Line 80: " + document.body.tagName);
// 创建一个简单的button,把它插入到文档的末尾
var oButton = document.createElement("button");
var oTextNode = document.createTextNode("替换");
oButton.appendChild(oTextNode);
//document.body.appendChild(oButton);
document.body.insertBefore(oButton, oDivs[1]);
// replaceChild
oButton.onclick = function() {
// 元素替换
var oDiv1 = document.getElementById("Div1");
var oPHi = document.createElement("p");
var oPText = document.createTextNode("Hi");
oPHi.appendChild(oPText);
oDiv1.replaceChild(oPHi, oDiv1.childNodes[1]);
}
// 查看属性
console.log("Line 103: The id of oDiv1: " + oDiv1.id);
console.log("Line 104: The data of oDiv1: " + oDiv1.getAttribute("id"));
console.log("Line 105: The data of oDiv1: " + oDiv1.data); // 不能通过对象属性获取自定义属性的值
console.log("Line 106: The data of oDiv1: " + oDiv1.getAttribute("data"));
// 设置属性
var oInsertInput = document.getElementById("insertInput");
//oInput.value = "Enter";
oInsertInput.setAttribute("value", "Enter...");
// 判断属性是否存在
if (oInsertInput.hasAttribute("value")) {
console.log("Line 113: The value of InsertInput: " + oInsertInput.getAttribute("value"));
}
// 删除属性
oInsertInput.removeAttribute("value");
55
if (oInsertInput.hasAttribute("value")) {
console.log("Line 119: The value of InsertInput: " + oInsertInput.getAttribute("value"));
}
oDiv1.removeAttribute("class");
oDiv1.setAttribute("class","div1");
}
function insertToList() {
var oInput = document.getElementById("insertInput");
var strValue = oInput.value;
//1. 创建节点的方法
//2. 克隆节点的方法
var oList1 = document.getElementById("List1");
var oLis = oList1.getElementsByTagName("li");
var oCreatedLi = oLis[1].cloneNode(true);
oCreatedLi.textContent = strValue;
oList1.insertBefore(oCreatedLi, oLis[0]);
}
function appendToList() {
var oInput = document.getElementById("appendInput");
var strValue = oInput.value;
//1. 创建节点的方法
//2. 克隆节点的方法
var oList2 = document.getElementById("List2");
var oLis = oList2.getElementsByTagName("li");
var oCreatedLi = oLis[1].cloneNode(true);
oCreatedLi.textContent = strValue;
oList2.appendChild(oCreatedLi);
}
function removeBottom() {
var oList2 = document.getElementById("List2");
var oLis = oList2.getElementsByTagName("li");
oList2.removeChild(oLis[oLis.length - 1]);
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
#Div1 {
color : red;
}
</style>
</head>
<body>
<div id="Div1" data="自定义属性" class="divi">
<p id="Paragraph">Hello</p>
World
</div>
<div>
<ul id="List1" class="list">
<li id = "11"> Html </li>
<li> Javascript </li>
<li> CSS </li>
<li> Webpack </li>
</ul>
<input id="insertInput" type="text"></input>
<button onclick="insertToList()">插入列表元素顶部</button>
<button onclick="removeTop()">删除顶部元素</button>
</div>
<div>
<ul id="List2" class="list">
<li> Vue </li>
<li> React </li>
<li> Angular </li>
</ul>
<input id="appendInput" type="text"></input>
<button onclick="appendToList()">添加到列表元素的尾部</button>
<button onclick="removeBottom()">删除尾部元素</button>
</div>
<div class="radio">
你的性别是:
<input class="radio" type="radio" name="gender" checked="true" value="女">女</input>
<input class="radio" type="radio" name="gender" value="男">男</input>
</div>
<div>
你喜欢那些水果:
<input class="radio" type="checkbox" name="fruit" checked="true" value="苹果">苹果</input>
<input type="checkbox" name="fruit" value="梨">梨</input>
</div>
<div id="DynamicDiv1"></div>
<div id="DynamicDiv2"></div>
</body>
</html>
.list {
background-color: lightblue;
}
.div1 {
background-color: lavender;
}