<ul class="list">
<li class="item">item1</li>
<li class="item">item2</li>
<li class="item">item3</li>
<li class="item">item4</li>
<li class="item">item5</li>
</ul>
<script>
// DOM: D->document, O->object, M: modal
// 1. 节点: 元素,文本,属性,注释,文档
// 用户通常只关注元素类型的节点
let ul = document.querySelector('.list');
console.log(ul);
console.log(ul.children);
console.log([1, 2, 3, 4]);
// 2. 类数组: '类': 类似,像数组,但不是真的数组
// 类数组特征:
// 1. 具有从0开始递增的正整数索引
// 2. 具有length属性, 表示成员数量
console.log(Array.isArray(ul.children));
// 类数组 -> 真数组
// 1. Array.from()
console.log(Array.isArray(Array.from(ul.children)));
// 2. ...rest
console.log(...ul.children);
console.log([...ul.children]);
console.log(Array.isArray([...ul.children]));
// [...ul.children].forEach(item => (item.style.color = 'red'));
// 遍历
let firstEle = document.querySelector('.list>.item:first-of-type');
console.log((firstEle.style.color = 'red'));
firstEle = ul.children[0];
console.log((firstEle.style.color = 'blue'));
//获取第一个子元素
ul.firstElementChild.style.background = 'yellow';
// 最后一个
ul.lastElementChild.style.background = 'coral';
// ul.children[1].style.background = 'lightgreen';
// document.querySelector('.item.two').style.background = 'red';
// 第2个是第1个下一个兄弟元素:nextElementSibling
ul.firstElementChild.nextElementSibling.style.background = 'cyan';
// 前一个兄弟元素:previousElementSibling
ul.lastElementChild.previousElementSibling.style.background = 'pink';
// 父节点: 必须是元素
console.log(ul.lastElementChild.parentNode);
ul.lastElementChild.parentNode.style.border = '5px solid';
</script>