当前位置:首页 > JavaScript

js 实现ul

2026-04-06 12:41:07JavaScript

在JavaScript中实现<ul>列表可以通过多种方式完成,以下是一些常见的方法:

动态创建UL元素并添加LI子项

使用document.createElement创建<ul><li>元素,并通过appendChildinnerHTML添加内容:

// 创建ul元素
const ul = document.createElement('ul');

// 添加li元素
const items = ['Item 1', 'Item 2', 'Item 3'];
items.forEach(item => {
  const li = document.createElement('li');
  li.textContent = item;
  ul.appendChild(li);
});

// 将ul添加到DOM中
document.body.appendChild(ul);

使用innerHTML直接生成

通过字符串拼接快速生成列表结构:

const items = ['Apple', 'Banana', 'Orange'];
const ul = document.createElement('ul');
ul.innerHTML = items.map(item => `<li>${item}</li>`).join('');
document.body.appendChild(ul);

结合模板字符串

利用模板字符串动态生成列表内容:

const data = [
  { id: 1, name: 'Red' },
  { id: 2, name: 'Blue' }
];

const ul = document.createElement('ul');
ul.innerHTML = `
  ${data.map(item => `<li data-id="${item.id}">${item.name}</li>`).join('')}
`;
document.querySelector('#container').appendChild(ul);

使用DocumentFragment优化性能

当需要添加大量列表项时,使用DocumentFragment减少DOM操作次数:

const fragment = document.createDocumentFragment();
const ul = document.createElement('ul');

for (let i = 0; i < 100; i++) {
  const li = document.createElement('li');
  li.textContent = `Item ${i + 1}`;
  fragment.appendChild(li);
}

ul.appendChild(fragment);
document.body.appendChild(ul);

响应式列表实现

结合事件委托实现动态交互:

const ul = document.createElement('ul');
ul.id = 'dynamicList';

['First', 'Second', 'Third'].forEach(text => {
  const li = document.createElement('li');
  li.className = 'list-item';
  li.textContent = text;
  ul.appendChild(li);
});

document.body.appendChild(ul);

// 事件委托处理点击
ul.addEventListener('click', (e) => {
  if (e.target.classList.contains('list-item')) {
    console.log('Clicked:', e.target.textContent);
  }
});

使用现代框架示例(React)

在React中实现动态列表的组件化方式:

js 实现ul

function ListComponent({ items }) {
  return (
    <ul>
      {items.map((item, index) => (
        <li key={index}>{item}</li>
      ))}
    </ul>
  );
}

// 使用示例
const items = ['React', 'Vue', 'Angular'];
ReactDOM.render(
  <ListComponent items={items} />,
  document.getElementById('root')
);

以上方法涵盖了从原生JavaScript到现代框架的实现方式,可根据具体需求选择合适的方法。动态生成的列表通常需要配合CSS进行样式控制,建议为<ul><li>添加适当的类名以便样式管理。

标签: jsul
分享给朋友:

相关文章

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…