获取相关元素
选择器的方式
// 获取第一个 selection 元素
let slt = document.querySelector("selection")
// 获取全部的 selection 元素,以 nodelist 的方式返回
let sltLst = document.querySelectorAll("selection")
除此以外,选择器还可以用不同标记( class
id
等)来获得元素。
// 获取为 head 类的第一个 selection 元素
let sltByClass = document.querySelector("selection.head")
// 获取为 p1 id的 selection 元素
let sltById = document.querySelector("#p1")
更复杂的选择器提取方式
// 获取 class 名为 user-panel main 的 div 内的 name 属性为 login 的 input 元素
let el = document.querySelector("div.user-panel.main input[name='login']")
创建元素及增删节点
创建元素
一般使用 document.createElement
来创建一个元素。
// 创建一个 p 标签的元素 n1
let n1 = document.createElement("p")
添加元素
一般使用 element.appendChild
来添加元素。
// 添加 n1 元素至 div 元素中.
let div = document.querySelector("div");
div.appendChild(n1);
删除元素
一般使用 element.removeChild()
来移除一个节点。
let childNode = document.createElement("p")
let div = document.querySelector("div")
div.appendChild(childNode)
// 移除 childNode 节点
div.removeChild(childNode)
// 或可以
childNode.parentNode.removeChild(childNode)
修改元素属性及样式更改
样式更改
let n1 = document.createElement("p")
// 将 n1 的颜色改为红色
n1.style.color = "red"
属性更改
let n1 = document.createElement("p")
// 文本内容修改
n1.textContent = "hello"
// 或可以
let textNode = document.createTextNode("hello")
n1.appendChild(textNode)
// 其他属性更改
n1.onclick = function(){
n1.parentNode.parentNode.removeChild(n1.parentNode);
}
n1.class = "classN1"
一个简单的实例
效果图
代码
<h2>My Shopping List</h2>
<div id="select">
<span>Enter a new item:</span> <input value="" id="inputItem"> <button onclick="addItem()">add item</button>
</div>
<ul id="list">
</ul>
<script>
function addItem(){
let text = document.querySelector('input').value;
let newItem = document.createElement("li");
let list = document.querySelector("ul");
let deleteButton = document.createElement("button");
newItem.textContent = text;
deleteButton.textContent = "delete";
deleteButton.onclick = function(){
deleteButton.parentNode.parentNode.removeChild(deleteButton.parentNode)
}
deleteButton.style.marginLeft = "30px"
newItem.appendChild(deleteButton)
list.appendChild(newItem);
}
</script>