You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery遍历class为lorem的ul列表项?含代码疑问

嘿,我来帮你梳理下问题并给出正确的实现方式~

首先得指出你原代码里的两个核心问题:

  1. nums.getElementsByTagName(".lorem li")写法错误:getElementsByTagName只能传入纯标签名(比如"li"),不能传入CSS选择器;而且要选中.lorem下的li,用jQuery的选择器会更顺手。
  2. 普通for循环里的$(this)不指向当前遍历的li:这个上下文里的this是全局对象(浏览器里是window),根本取不到当前列表项的内容。

下面给你几种正确的jQuery遍历实现方式:

方法1:使用jQuery的.each()方法(推荐)

这是jQuery专门为遍历集合设计的方法,语义清晰且代码简洁:

// 先选中.lorem下的所有li,再遍历每一项
$('.lorem li').each(function() {
  // 这里的this自动指向当前遍历的li DOM元素
  if ($(this).text().trim() === 'hello') {
    // 执行你需要的操作,比如:
    $(this).css('color', 'red');
    console.log('找到目标列表项啦!');
  }
});

小贴士:加上.trim()是为了避免文本前后的空格导致匹配失败,比如列表项里是" hello "也能正确匹配。

方法2:用普通for循环(如果习惯原生循环逻辑)

如果偏爱原生循环的写法,也可以先获取jQuery集合,再通过索引访问元素:

// 获取.lorem下所有li的jQuery集合
var listItems = $('.lorem li');
for (var i = 0; i < listItems.length; i++) {
  // 两种方式获取当前项的jQuery对象:
  var currentItem = listItems.eq(i); 
  // 或者 var currentItem = $(listItems[i]);
  if (currentItem.text().trim() === 'hello') {
    // 执行操作,比如添加高亮类
    currentItem.addClass('highlight');
  }
}

方法3:直接过滤后操作(更简洁)

如果你的需求只是找到文本为hello的li并执行操作,甚至可以跳过手动遍历,直接用过滤方法:

// 精确匹配文本内容
$('.lorem li').filter(function() {
  return $(this).text().trim() === 'hello';
}).addClass('highlight').text('已找到目标项');

如果不需要精确匹配(只要包含hello即可),还能更简单:

// :contains选择器会匹配所有包含指定文本的元素(大小写敏感)
$('.lorem li:contains("hello")').addClass('highlight');

内容的提问来源于stack exchange,提问作者Henrik Petterson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:09:38