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

如何用jQuery从遍历的分类列表中提取唯一值?

获取jQuery遍历中的唯一分类文本

没问题,这需求很常见,我来帮你调整代码实现去重!核心思路就是先收集所有分类文本,再过滤掉重复项,下面给你两种实用的实现方式:

方法一:用ES6 Set自动去重(推荐,简洁高效)

Set是ES6新增的数据结构,它会自动忽略重复的元素,非常适合做去重操作:

jQuery(document).ready(function() {
  // 创建Set存储唯一分类,自动去重
  const uniqueCategories = new Set();
  
  jQuery(".rpc-post-category a").each(function() {
    // 先去掉文本前后空格,避免因空格误判为不同分类
    const categoryText = jQuery(this).text().trim();
    // 跳过空文本
    if (categoryText) {
      uniqueCategories.add(categoryText);
    }
  });
  
  // 把Set转成数组,方便后续遍历/渲染
  const uniqueCategoryList = Array.from(uniqueCategories);
  
  // 输出到控制台查看结果
  console.log("唯一分类列表:", uniqueCategoryList);
  
  // 如果你要把这些分类渲染到页面,比如插入到某个容器
  const $categoryContainer = jQuery("<div class='unique-categories'></div>");
  uniqueCategoryList.forEach(category => {
    $categoryContainer.append(`<span class='category-item'>${category}</span>`);
  });
  // 替换成你实际要插入的元素选择器,比如#category-list
  jQuery("body").append($categoryContainer);
});

方法二:用数组手动判断去重(兼容更老环境)

如果你的项目需要兼容不支持ES6的老浏览器,可以用数组结合indexOf来手动判断是否已存在:

jQuery(document).ready(function() {
  const uniqueCategories = [];
  
  jQuery(".rpc-post-category a").each(function() {
    const categoryText = jQuery(this).text().trim();
    // 只有文本非空且未在数组中存在时,才添加
    if (categoryText && uniqueCategories.indexOf(categoryText) === -1) {
      uniqueCategories.push(categoryText);
    }
  });
  
  console.log("唯一分类列表:", uniqueCategories);
  
  // 页面渲染逻辑和方法一一致,这里就不重复写了
});

关键注意点

  • 一定要用trim()处理文本:很多时候分类文本前后会有空格,看起来一样但实际是不同的字符串,trim能避免这种误判。
  • 过滤空文本:防止遍历到没有内容的a标签,导致列表出现空项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:58:37