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

如何基于点击量对HTML列表按热度排序?

实现按点击量排序的政党列表

你已有的HTML和CSS搭建了一个政党卡片网格,下面是添加点击量统计和排序功能的JavaScript实现:

核心逻辑

  • 用对象存储每个政党的点击次数
  • 点击卡片时更新计数并触发排序
  • 按点击次数从高到低重新排列列表项

完整JavaScript代码

// 存储每个政党的点击次数,初始值为0
const clickCounts = {};

// 页面加载完成后初始化点击计数
document.addEventListener('DOMContentLoaded', () => {
  const items = document.querySelectorAll('#Partijensort .grid-item');
  items.forEach(item => {
    clickCounts[item.id] = 0;
  });
});

// 点击计数函数,对应HTML中的onclick事件
function incrementClicks(item) {
  clickCounts[item.id]++;
  sortItemsByClicks();
}

// 按点击量排序列表项的核心函数
function sortItemsByClicks() {
  const list = document.getElementById('Partijensort');
  const itemsArray = Array.from(list.querySelectorAll('.grid-item'));
  
  // 按点击次数降序排序,点击数相同则保留原顺序
  itemsArray.sort((a, b) => clickCounts[b.id] - clickCounts[a.id]);
  
  // 清空原列表,重新插入排序后的项
  list.innerHTML = '';
  itemsArray.forEach(item => list.appendChild(item));
}

使用说明

  1. 将这段代码放在HTML的<script>标签中,建议放在</body>标签前,确保DOM加载完成后再执行。
  2. 点击任意政党卡片,点击数会自动增加,列表会立即重新排序,点击量最高的卡片排在最前。
  3. 若需要页面刷新后保留点击数据,可改用localStorage存储计数,修改如下:
// 从本地存储读取初始数据,无数据则设为空对象
const clickCounts = JSON.parse(localStorage.getItem('clickCounts')) || {};

// 更新计数后同步到本地存储
function incrementClicks(item) {
  clickCounts[item.id] = (clickCounts[item.id] || 0) + 1;
  localStorage.setItem('clickCounts', JSON.stringify(clickCounts));
  sortItemsByClicks();
}

小提示

你的CSS代码中有重复的#vvd样式定义,建议删除其中一个,避免样式冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:25:53