<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<ul id="list">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
<script>
const list = document.getElementById('list');
const lis = list.getElementsByTagName('li');
const fragment = document.createDocumentFragment();
for (let i = 0; i < lis.length; i++) {
if (i % 2 === 0) {
const li = lis[i].cloneNode(true);
li.classList.add('highlight');
li.style.color ='red';
fragment.appendChild(li);
} else {
fragment.appendChild(lis[i]);
}
}
list.innerHTML = '';
list.appendChild(fragment);
</script>
<style>
.highlight {
/* 可添加其他样式 */
}
</style>
</body>
</html>
- 获取列表元素:使用
getElementById
获取id为list
的无序列表。
- 获取所有
<li>
元素:通过列表元素的getElementsByTagName
方法获取所有的<li>
元素。
- 创建文档片段:使用
createDocumentFragment
创建一个文档片段,在文档片段上进行操作可以避免频繁的重排和重绘。
- 遍历
<li>
元素:
- 对于偶数索引位置的
<li>
元素,克隆该元素,为克隆元素添加highlight
类并修改文本颜色为红色,然后添加到文档片段。
- 对于奇数索引位置的
<li>
元素,直接添加到文档片段。
- 更新列表:清空原列表内容,将文档片段添加到原列表中。