ZetCode

JavaScript lastElementChild

最后修改于 2025 年 4 月 2 日

在本文中,我们将探讨 JavaScript 中的 lastElementChild 属性。此属性对于 DOM 遍历至关重要,它允许开发人员有效地访问任何父元素的最后一个子元素。

基本定义

lastElementChild 属性返回指定元素的最后一个子元素。它只考虑元素节点,忽略文本节点和注释。

此属性是只读的,如果父元素没有子元素,则返回 null。它提供了一种方便的方式来访问最后一个元素,而无需遍历所有子节点。

基本 lastElementChild 用法

此示例演示了如何访问 div 的最后一个子元素。

index.html
<!DOCTYPE html>
<html>
<head>
    <title>Basic lastElementChild</title>
</head>
<body>

<div id="container">
    <p>First paragraph</p>
    <p>Second paragraph</p>
    <p>Last paragraph</p>
</div>

<script>
    const container = document.getElementById('container');
    const lastChild = container.lastElementChild;
    console.log(lastChild.textContent);
</script>

</body>
</html>

在这个基本示例中,我们有一个包含三个段落元素的 div。JavaScript 代码检索容器 div,然后使用 lastElementChild 访问其最后一个子元素。

控制台将打印“Last paragraph”,演示了此属性如何快速访问最后一个元素子项。这比使用 childNodes 并手动检查节点类型更有效。

样式化最后一个元素

此示例展示了如何以不同方式样式化最后一个子元素。

index.html
<!DOCTYPE html>
<html>
<head>
    <title>Styling Last Element</title>
    <style>
        .item {
            padding: 10px;
            margin: 5px;
            background-color: #f0f0f0;
        }
    </style>
</head>
<body>

<ul id="list">
    <li class="item">Item 1</li>
    <li class="item">Item 2</li>
    <li class="item">Item 3</li>
</ul>

<script>
    const list = document.getElementById('list');
    const lastItem = list.lastElementChild;
    lastItem.style.backgroundColor = '#ffcccc';
    lastItem.style.fontWeight = 'bold';
</script>

</body>
</html>

这里我们有一个包含三个项目的无序列表。JavaScript 代码使用 lastElementChild 查找最后一个列表项,并为其应用特殊样式。

这演示了一个常见的 UI 模式,即最后一个元素需要不同的样式。lastElementChild 属性使此任务简单高效。

移除最后一个元素

此示例演示了如何从父元素中移除最后一个子元素。

index.html
<!DOCTYPE html>
<html>
<head>
    <title>Removing Last Element</title>
</head>
<body>

<div id="gallery">
    <img src="image1.jpg" alt="Image 1">
    <img src="image2.jpg" alt="Image 2">
    <img src="image3.jpg" alt="Image 3">
</div>
<button onclick="removeLastImage()">Remove Last Image</button>

<script>
    function removeLastImage() {
        const gallery = document.getElementById('gallery');
        const lastImage = gallery.lastElementChild;
        
        if (lastImage) {
            gallery.removeChild(lastImage);
        }
    }
</script>

</body>
</html>

在此示例中,我们有一个图片库和一个按钮。单击按钮时,最后一个图像将使用 lastElementChildremoveChild 移除。

代码首先检查是否存在最后一个子项,然后再尝试移除。这可以防止在图库为空时出现错误。这种模式对于动态内容管理很有用。

与 lastChild 比较

此示例突出了 lastElementChild 和 lastChild 之间的区别。

index.html
<!DOCTYPE html>
<html>
<head>
    <title>lastElementChild vs lastChild</title>
</head>
<body>

<div id="content">
    Some text node
    <p>Paragraph element</p>
    Another text node
</div>

<script>
    const content = document.getElementById('content');
    
    console.log('lastChild:', content.lastChild);
    console.log('lastElementChild:', content.lastElementChild);
</script>

</body>
</html>

此示例显示了一个包含混合内容的 div:文本节点和一个元素。脚本将 lastChildlastElementChild 都记录下来进行比较。

lastChild 返回最后一个节点(包括文本节点),而 lastElementChild 只返回最后一个元素节点。在处理混合内容时,这种区别至关重要。

动态列表管理

此示例展示了如何将 lastElementChild 与动态创建的元素一起使用。

index.html
<!DOCTYPE html>
<html>
<head>
    <title>Dynamic List Management</title>
</head>
<body>

<ul id="taskList"></ul>
<input type="text" id="taskInput" placeholder="Enter task">
<button onclick="addTask()">Add Task</button>
<button onclick="completeLastTask()">Complete Last</button>

<script>
    function addTask() {
        const input = document.getElementById('taskInput');
        if (input.value.trim() === '') return;
        
        const list = document.getElementById('taskList');
        const newItem = document.createElement('li');
        newItem.textContent = input.value;
        list.appendChild(newItem);
        input.value = '';
    }
    
    function completeLastTask() {
        const list = document.getElementById('taskList');
        const lastTask = list.lastElementChild;
        
        if (lastTask) {
            lastTask.style.textDecoration = 'line-through';
            lastTask.style.color = '#999';
        }
    }
</script>

</body>
</html>

此示例创建了一个简单的任务管理器。用户可以添加任务并将最后一个任务标记为完成。lastElementChild 属性有助于标识最近添加的任务。

completeLastTask 函数使用 lastElementChild 来查找和样式化最后一个任务。这演示了在动态 Web 应用程序中的实际应用。

来源

MDN lastElementChild 文档

在本文中,我们展示了如何在 JavaScript 中使用 lastElementChild 属性。此属性对于 Web 开发中的 DOM 遍历和元素操作至关重要。

作者

我叫 Jan Bodnar,我是一名热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在教授编程方面拥有十多年的经验。

列出 所有 JS DOM 教程