【发布时间】:2020-11-29 14:20:27
【问题描述】:
我有一个动态列表,其中类由 PHP 循环生成。我想知道如何检测添加的类,因为未来的类名可能会在不久的将来通过 CMS 添加。目前,我正在手动完成并希望它能够自动化
例如
<ul id="Portfoliolist">
<li class="2020">Name</li>
<li class="2019">Name</li>
<li class="2018">Name</li>
<li class="2017">Name</li>
<li class="2016">Name</li>
</ul>
jQuery 手册
$('.2020').click(function() {
$('.portfolio_image 2019').css('display','none');
});
$('.2019').click(function() {
$('.portfolio_image 2020').css('display','none');
});
在不久的将来,可能会在后端添加一个类似 2021 的类名,并将导致
<ul id="Portfoliolist">
<li class="2021">Name</li> <!-- added through loop -->
<li class="2020">Name</li>
<li class="2018">Name</li>
<li class="2017">Name</li>
<li class="2016">Name</li>
</ul>
并且由于 jQuery 代码中不存在 2021 年的新类,该脚本将无法运行
$('.2019').click(function() {
$('.portfolio_image 2020').css('display','none');
$('.portfolio_image 2019').css('display','block');
});
$('.2020').click(function() {
$('.portfolio_image 2019').css('display','none');
$('.portfolio_image 2020').css('display','block');
});
<div class="portfolio_image 2019"> ...list of portfolio </div>
<div class="portfolio_image 2018"> ...list of portfolio </div>
【问题讨论】:
-
不要为相似元素创建唯一类,对唯一值使用通用类和数据属性。
-
什么是
portfolio_image?它是被所有li元素点击隐藏的相同元素吗?相关的 HTML 会有帮助吗? -
portfolio 是点击列表类时隐藏的图片
标签: javascript jquery arrays loops