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

使用jQuery获取指定div的class名时each函数无法仅返回类名怎么办

问题原因

  • jQuery的each()方法本身返回的是你最初选中的jQuery元素集合,并非回调函数内部的返回值,你直接把each()的返回值赋值给ClassNames,拿到的自然是所有匹配#list .names的元素对象,不是你要的类名字符串。
  • 你在回调函数里获取了$(this).attr('class')但没有做收集存储操作,这个值执行完就被丢弃,没有汇总到最终的变量里。

正确实现方案

你可以用map()方法替代each(),这个方法专门用于遍历集合并收集返回值,再调用get()转成普通数组就能拿到所有类名:

var ClassNames = $("#list .names").map(function() {
  return $(this).attr('class');
}).get();

如果你更习惯用each(),可以提前声明一个空数组做存储,遍历的时候把类名推进数组即可:

var ClassNames = [];
$("#list .names").each(function() {
  ClassNames.push($(this).attr('class'));
});

补充说明

如果目标元素上有多个类名,attr('class')会返回空格分隔的全类名字符串,如果你需要拆分单个类名,可以自行加split(' ')处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:06:03