当前位置:首页 > React

React如何获取li

2026-01-23 17:13:15React

获取单个 <li> 元素

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

React如何获取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 的方式。推荐通过父元素获取子节点列表。

React如何获取li

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> 元素。

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如何定时刷新

使用setInterval实现定时刷新 在React中,可以通过setInterval在组件挂载时设置定时器,组件卸载时清除定时器。这种方式适用于需要在固定间隔执行某些操作的场景。 import R…

React如何阻断render刷新

React如何阻断render刷新

使用 shouldComponentUpdate 生命周期方法 在类组件中,可以通过实现 shouldComponentUpdate 方法来控制组件是否需要重新渲染。该方法接收 nextProps 和…

React如何写popover

React如何写popover

使用React创建Popover React中实现Popover可以通过多种方式,包括使用第三方库或自定义组件。以下是几种常见方法: 使用Material-UI库 Material-UI提供了现成的…

React如何开发大型项目

React如何开发大型项目

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

React中如何监听state的变化

React中如何监听state的变化

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

React实现全屏弹窗

React实现全屏弹窗

React 实现全屏弹窗的方法 使用 CSS 样式控制全屏 通过 CSS 设置弹窗的样式,使其覆盖整个视口。以下是一个基本的实现示例: import React, { useState } from…