当前位置:首页 > 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> 元素。

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 操作可能引发错误

React如何获取li

标签: Reactli
分享给朋友:

相关文章

React如何定时刷新

React如何定时刷新

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

React如何监听数据

React如何监听数据

监听数据的方法 在React中监听数据变化可以通过多种方式实现,具体取决于数据的来源和状态管理方式。 使用useEffect钩子 useEffect是React Hooks中用于监听数据变化的常用…