【发布时间】:2016-02-21 19:32:12
【问题描述】:
我有一些包含不同关键字的卡片的 HTML:
<div class="item">
<div class="hashtags">
<span><a href="#">Healthcare</a></span>
<span><a href="#">Mobility</a></span>
</div>
</div>
<div class="item">
<div class="hashtags">
<span><a href="#">Finance</a></span>
<span><a href="#">Mobility</a></span>
</div>
</div>
...还有一些可以打开/关闭的药丸的 HTML:
<div class="hashtags">
<span class="active"><a href="#">Finance</a></span>
<span class="inactive"><a href="#">Healthcare</a></span>
<span class="inactive"><a href="#">Managed Services</a></span>
<span class="inactive"><a href="#">Mobility</a></span>
</div>
这个想法是为了能够点击“财务”的药丸,只有那些在其标签类别中包含“财务”的项目才会显示,而所有其他项目都被隐藏。我试过搜索如何根据内容过滤/切换,但似乎还找不到任何东西。到目前为止,这是我的 JS,它只切换药丸样式的活动/非活动类:
$('.hashtags>span').click(function() {
$(this).toggleClass('inactive');
$(this).toggleClass('active');
});
我知道有一种方法可以在 JS 或 jQuery 中查找 HTML 和比较字符串……但不确定这是最好的方法。任何建议表示赞赏。非常感谢!
【问题讨论】:
-
当你说 > 只有那些在其标签类中包含“Finance”的项目 href 的值包含单词 Finance,或者如果锚标签的
value是金融吗? -
您是否正在搜索直接在选择器内进行“过滤”,类似于(不存在)$(".item .hashtags a[content=blabla]") 之类的?怀疑,但我会搜索一下
-
不存在基于内容的 CSS 选择器。有一次,一个伪 for :contains 被提出,但从未进入。要根据内容做任何事情,你需要使用 javascript。是否可以向要过滤的元素添加类。添加金融类等等...
-
@RiccardoC 不确定……这就是我想要弄清楚的。我想知道数组是否有帮助?就像我可能需要将主题标签类中的所有 a 标签值存储到一个数组中,然后当其中一个被点击时,它会以某种方式将其与所有项目 div 中的 a 标签进行比较?
标签: javascript jquery html css filter