当前位置:首页 > JavaScript

js实现列表效果

2026-02-02 17:27:32JavaScript

实现基础列表渲染

使用JavaScript动态渲染列表数据到HTML页面。假设有一个数组数据需要展示为无序列表:

const items = ['Apple', 'Banana', 'Orange'];
const listContainer = document.getElementById('list-container');

function renderList(items) {
  const ul = document.createElement('ul');

  items.forEach(item => {
    const li = document.createElement('li');
    li.textContent = item;
    ul.appendChild(li);
  });

  listContainer.appendChild(ul);
}

renderList(items);

HTML部分需要有一个容器元素:

<div id="list-container"></div>

添加交互功能

为列表项添加点击事件处理,实现选中效果:

function renderInteractiveList(items) {
  const ul = document.createElement('ul');

  items.forEach(item => {
    const li = document.createElement('li');
    li.textContent = item;
    li.addEventListener('click', function() {
      this.classList.toggle('selected');
    });
    ul.appendChild(li);
  });

  listContainer.innerHTML = '';
  listContainer.appendChild(ul);
}

CSS样式:

js实现列表效果

.selected {
  background-color: #f0f0f0;
  font-weight: bold;
}

实现动态列表操作

添加表单输入和按钮,支持动态添加列表项:

const addButton = document.getElementById('add-item');
const newItemInput = document.getElementById('new-item');

addButton.addEventListener('click', function() {
  const newItem = newItemInput.value.trim();
  if(newItem) {
    items.push(newItem);
    renderInteractiveList(items);
    newItemInput.value = '';
  }
});

HTML部分:

js实现列表效果

<input type="text" id="new-item" placeholder="Enter new item">
<button id="add-item">Add Item</button>
<div id="list-container"></div>

使用模板引擎

对于复杂列表结构,可以使用模板字符串或模板引擎:

function renderListWithTemplate(items) {
  const html = items.map(item => `
    <li class="list-item">
      <span>${item.name}</span>
      <span class="price">$${item.price}</span>
    </li>
  `).join('');

  listContainer.innerHTML = `<ul>${html}</ul>`;
}

const products = [
  { name: 'Laptop', price: 999 },
  { name: 'Phone', price: 699 },
  { name: 'Tablet', price: 399 }
];

renderListWithTemplate(products);

实现排序和过滤

为列表添加排序和过滤功能:

function sortList(order = 'asc') {
  const sortedItems = [...items].sort((a, b) => {
    return order === 'asc' 
      ? a.localeCompare(b)
      : b.localeCompare(a);
  });
  renderInteractiveList(sortedItems);
}

function filterList(searchTerm) {
  const filteredItems = items.filter(item => 
    item.toLowerCase().includes(searchTerm.toLowerCase())
  );
  renderInteractiveList(filteredItems);
}

HTML部分添加控制元素:

<input type="text" id="search" placeholder="Search items">
<button onclick="sortList('asc')">Sort A-Z</button>
<button onclick="sortList('desc')">Sort Z-A</button>
<div id="list-container"></div>

这些方法展示了如何使用JavaScript实现各种列表效果,从基础渲染到交互功能、动态操作和数据处理。根据具体需求,可以组合或扩展这些方法来实现更复杂的列表功能。

标签: 效果列表
分享给朋友:

相关文章

vue实现吸附效果

vue实现吸附效果

Vue实现吸附效果的方法 吸附效果通常指页面滚动时,某个元素固定在特定位置(如顶部或底部)。以下是几种实现方式: 使用CSS的position: sticky 通过CSS的sticky定位实现吸附…

css3制作立体效果

css3制作立体效果

使用 transform 属性实现立体旋转 通过 transform-style: preserve-3d 和 rotateX/Y/Z 实现 3D 空间变换: .container { tr…

vue公共列表的实现

vue公共列表的实现

Vue 公共列表的实现方法 在 Vue 中实现公共列表组件,可以通过封装可复用的逻辑和模板来完成。以下是几种常见的实现方式: 使用 props 和 slots 通过 props 接收列表数据,使用…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

h5所能实现的效果

h5所能实现的效果

H5能实现的效果 H5(HTML5)作为最新的HTML标准,具备强大的功能和丰富的API支持,能够实现多种现代Web应用效果。以下是H5的主要能力分类: 多媒体支持 H5原生支持音频和视频播放,无…

vue实现翻页效果

vue实现翻页效果

使用Vue实现翻页效果 在Vue中实现翻页效果通常需要结合分页组件和数据处理逻辑。以下是几种常见方法: 基础分页组件实现 <template> <div> &l…