当前位置:首页 > React

React如何获取li

2026-01-23 17:13:15React

获取单个 <li> 元素

在 React 中,可以通过 ref 直接获取 DOM 元素。使用 useRef 钩子创建引用,并将其绑定到目标 <li> 元素上。

import React, { useRef } from 'react';

function ListItem() {
  const liRef = useRef(null);

  const handleClick = () => {
    console.log(liRef.current.textContent); // 输出 li 的文本内容
  };

  return (
    <ul>
      <li ref={liRef} onClick={handleClick}>
        点击获取内容
      </li>
    </ul>
  );
}

获取多个 <li> 元素列表

当需要操作多个 <li> 元素时,可以使用 querySelectorAll 或动态绑定 ref 的方式。推荐通过父元素获取子节点列表。

import React, { useRef } from 'react';

function ListItems() {
  const ulRef = useRef(null);

  const handleClick = () => {
    const lis = ulRef.current.querySelectorAll('li');
    lis.forEach(li => console.log(li.textContent));
  };

  return (
    <ul ref={ulRef}>
      <li>项目1</li>
      <li>项目2</li>
      <li>项目3</li>
    </ul>
  );
}

动态渲染列表时获取元素

通过 map 渲染动态列表时,可为每个 <li> 创建独立的 ref 并存入数组。

import React, { useRef } from 'react';

function DynamicList() {
  const items = ['A', 'B', 'C'];
  const liRefs = useRef([]);

  const handleClick = (index) => {
    console.log(liRefs.current[index].textContent);
  };

  return (
    <ul>
      {items.map((item, index) => (
        <li 
          key={index}
          ref={el => liRefs.current[index] = el}
          onClick={() => handleClick(index)}
        >
          {item}
        </li>
      ))}
    </ul>
  );
}

事件委托方式获取目标 <li>

通过事件冒泡机制,从父元素事件中通过 event.target 获取实际点击的 <li> 元素。

React如何获取li

function EventDelegation() {
  const handleClick = (e) => {
    if (e.target.tagName === 'LI') {
      console.log(e.target.textContent);
    }
  };

  return (
    <ul onClick={handleClick}>
      <li>苹果</li>
      <li>香蕉</li>
      <li>橙子</li>
    </ul>
  );
}

注意事项

  • 避免过度使用 ref 直接操作 DOM,优先考虑 React 的状态管理
  • 动态列表的 ref 数组需要正确处理索引,防止内存泄漏
  • 服务端渲染场景下,直接 DOM 操作可能引发错误

标签: Reactli
分享给朋友:

相关文章

React如何刷新当前组件

React如何刷新当前组件

强制刷新当前组件 使用forceUpdate方法可以强制React组件重新渲染,即使状态或属性未发生变化。这种方法应谨慎使用,通常仅在直接修改了类组件的实例属性时使用。 this.forceUpda…

React如何开发大型项目

React如何开发大型项目

React开发大型项目的关键方法 模块化与组件拆分 将UI拆分为可复用的独立组件,遵循单一职责原则。使用容器组件管理状态,展示组件处理UI渲染。结合Atomic Design或类似方法论组织组件层级。…

React如何点击以后再渲染组件

React如何点击以后再渲染组件

条件渲染实现点击后渲染组件 在React中实现点击后再渲染组件,可以通过状态管理控制组件的渲染条件。核心思路是利用useState钩子存储一个布尔值,通过点击事件切换该状态。 import Reac…

React中如何监听state的变化

React中如何监听state的变化

监听state变化的常用方法 在React中,监听state变化可以通过以下几种方式实现: 使用useEffect钩子 import { useState, useEffect } from 'r…

React实现cad

React实现cad

React 实现 CAD 功能 在 React 中实现 CAD(计算机辅助设计)功能通常需要结合第三方库或框架,以下是一些常见的方法和工具: 使用 Three.js 进行 3D 建模 Three.j…

React原生实现menu

React原生实现menu

React 原生实现菜单 在React中实现菜单功能可以通过多种方式完成,以下是几种常见的方法: 使用状态管理控制菜单显示 通过React的useState钩子管理菜单的显示状态,结合点击事件触发状…