Javascript ES6获取DOM
直接获取
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ES6方式获取DOM</title>
</head>
<body>
<div id="family">
<div class="father">
爸爸
<div class="son">儿子</div>
</div>
</div>
<div id="b">我是div</div>
<span>我是span</span>
<ul>
<li name="data-list" class="item-list">李昊哲</li>
<li name="data-list" class="item-list">李胜龙</li>
<li name="data-list" class="item-list">大美丽</li>
<li name="data-list" class="item-list">小可爱</li>
</ul>
<input type="text" name="account" id="account" value="admin">
<input type="password" name="password" id="password" value="admin">
</body>
</html>
<script>
// 根据id获取
let family = document.querySelector('#family');
console.log(family);
// 根据 css类选择器 获取
// NodeList
let item_list = document.querySelectorAll('.item-list');
console.log(item_list);
// console.log(item_list[0]);
item_list.forEach(li => {
console.log(li);
});
// 根据属性名获取
// NodeList
console.log(document.querySelectorAll('[name]'));
console.log(document.querySelectorAll('input[name]'));
console.log(document.querySelector('input[name=account]'));
console.log(document.querySelector('input[name=password]'));
let data_list = document.querySelectorAll('[name=data-list]');
console.log(data_list);
data_list.forEach(li => {
console.log(li);
});
// 根据标签名获取
// NodeList
let lis = document.querySelectorAll('li');
console.log(lis);
lis.forEach(li => {
console.log(li);
});
</script>
间接获取
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>获取DOM的父子与兄弟</title>
</head>
<body>
<div id="family">
<div class="father">
爸爸
<div class="son">儿子</div>
</div>
</div>
<div id="b">我是div</div>
<!--兄弟啊 想你啦-->
<span>我是span</span>
<ul>
<li name="data-list" class="item-list">李昊哲</li>
<li name="data-list" class="item-list">李胜龙</li>
<li name="data-list" class="item-list">大美丽</li>
<li name="data-list" class="item-list">小可爱</li>
</ul>
<input type="text" name="account" id="account" value="admin">
<input type="password" name="password" id="password" value="admin">
</body>
</html>
<script>
// parentNode跟parentElement除了前者是w3c标准,后者只ie支持
// 当父节点的nodeType不是1,即不是element节点的话,它的parentElement就会是null
// 一般情况parentNode可以取代parentElement的所有功能
// parentElement匹配的是parent为element的情况,而parentNode匹配的则是parent为node的情况。element是包含在node里的,它的nodeType是1
let son = document.querySelector('.son');
console.log(son);
// 返回元素的父节点
console.log(son.parentNode);
// 返回元素的父元素
console.log(son.parentElement);
let family = document.querySelector('#family');
// NodeList 返回元素的一个子节点的数组 包含文本节点和注释节点
console.log(family.childNodes);
// HTMLCollection 返回元素的子元素的集合
console.log(family.children);
let ul = document.querySelector('ul');
let lis = ul.children;
for (const li of lis) {
console.log(li.innerText);
}
console.log('+++++++++++++++++++++++++++++++');
// 获取ul标签第一个子元素的文本内容
console.log(ul.firstElementChild);
console.log(ul.firstElementChild.innerText);
console.log(ul.firstChild);
console.log('+++++++++++++++++++++++++++++++');
// 获取ul标签最后一个子元素的文本内容
console.log(ul.lastElementChild);
console.log(ul.lastElementChild.innerText);
console.log(ul.lastChild);
console.log('+++++++++++++++++++++++++++++++');
// nextSibling 属性与 nextElementSibling 属性的差别:
// nextSibling 属性返回元素节点之后的兄弟节点(包括文本节点、注释节点);
// nextElementSibling 属性只返回元素节点之后的兄弟元素节点(不包括文本节点、注释节点);
// nextElementSibling 属性为只读属性。
// nextElementSibling 属性返回指定元素之后的下一个兄弟元素(相同节点树层中的下一个元素节点)。
let b = document.querySelector('#b');
// 返回某个元素之后紧跟的节点:
console.log(b.nextSibling);
// 返回下一个 HTML 内容:
console.log(b.nextElementSibling);
</script>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/188796.html