我创建了一篇包含三个类别的博客文章:(数字营销类别、提示和建议类别、加密货币类别)
我想做的是过滤它。
例如,如果我想查看数字营销类别的所有文章,我将单击此按钮来显示所有数字营销类别并隐藏其他类别。
这是我的代码示例。问题是我的过滤器不起作用。问题出在哪里?
我尝试添加 JavaScript 使其工作,但仍然不起作用。问题出在哪里?
document.addEventListener("DOMContentLoaded", () => {
"use strict";
/**
* Article Category Filter
*/
const filterButtons = document.querySelectorAll('.blog-filters button');
const articleCards = document.querySelectorAll('.article-card');
filterButtons.forEach(button => {
button.addEventListener('click', () => {
const selectedCategory = button.getAttribute('data-category');
articleCards.forEach(card => {
const cardCategory = card.getAttribute('data-category');
if (selectedCategory === 'all' || selectedCategory === cardCategory) {
card.style.display = 'block';
} else {
card.style.display = 'none';
}
});
});
});
}); // this line added by community
<section id="blog" class="blog">
<div class="row">
<div class="col-md-8">
<div class="posts-list">
<div class="row">
<div class="col-lg-6 col-md-6 d-md-flex article-card" data-category="digital-marketing-category">
Blog Card
</div>
<!-- Article Card -->
<div class="col-lg-6 col-md-6 d-md-flex article-card" data-category="tips-and-advice-category">
Blog Card
</div>
<!-- Article Card -->
<div class="col-lg-6 col-md-6 d-md-flex article-card" data-category="cryptocurrency-category">
Blog Card
</div>
<!-- Article Card -->
</div>
</div>
</div>
<div class="col-md-4">
<div class="sidebar">
<h3 class="sidebar-title">Article Categories</h3>
<div class="blog-filters">
<button data-category="filter-all">All</button>
<button data-category="digital-marketing-category">Digital Marketing</button>
<button data-category="tips-and-advice-category">Tips & Advice</button>
<button data-category="cryptocurrency-category">Cryptocurrency</button>
</div>
</div>
</div>
</div>
</section>
Your Answer
1 个回答
在您的代码中,您将“全部过滤”按钮的 data-category 属性定义为 data-category="filter-all"。因此,当单击“全部”按钮时,JavaScript 代码中的 selectedCategory 变量将被设置为“filter-all”。
但是,在按类别过滤文章的 if 语句中,该语句与“all”进行比较,这与“filter-all”不匹配,因此不会显示任何文章。
这是您更正后的代码:
if (selectedCategory === 'filter-all' || selectedCategory === cardCategory) {
card.style.display = 'block';
} else {
card.style.display = 'none';
}
此外,您提供的 JS 在最后缺少 });,不确定这是否只是您不小心错过了该行想法:)
Hot Questions
function_exists()无法判定自定义函数
2024-04-29 11:01:01
google 浏览器 手机版显示的怎么实现
2024-04-23 00:22:19
子窗口操作父窗口,输出没反应
2024-04-19 15:37:47
父窗口没有输出
2024-04-18 23:52:34
关于CSS思维导图的课件在哪?
2024-04-16 10:10:18
Hot Tools
vc9-vc14(32+64位)运行库合集(链接在下方)
phpStudy安装所需运行库集合下载
VC9 32位
VC9 32位 phpstudy集成安装环境运行库
php程序员工具箱完整版
程序员工具箱 v1.0 php集成环境
VC11 32位
VC11 32位 phpstudy集成安装环境运行库
SublimeText3汉化版
中文版,非常好用
热门话题
抖音等级价目表1-75
20335
7
20335
7
wifi显示无ip分配
13530
4
13530
4
虚拟手机号接收验证码
11850
4
11850
4
gmail邮箱登陆入口在哪里
8835
17
8835
17
windows安全中心怎么关闭
8420
7
8420
7
热门文章
2025年加密货币市场十大趋势预测:下一个风口在哪里?
2025-11-07
By DDD
Galaxy的观点:山寨币ETF大军即将到来 哪些的前景会光明
2025-11-08
By DDD
铁路12306支付失败订单还在吗_铁路12306支付失败订单处理方法
2025-11-07
By DDD
win10字体安装后在软件里找不到怎么办_win10字体安装与识别方法
2025-11-07
By DDD
解决CSS @media 查询优先级与规则覆盖问题的教程
2025-11-07
By DDD





