【发布时间】:2014-02-18 20:27:45
【问题描述】:
我的 html 页面上有一个元素列表 (DIV),如下所示。
同一页面上有一个标签列表。
我需要当用户点击主题标签(例如#bacteria)时,只显示包含该主题标签的那些 DIV。
实现它的最轻量级和最简单的方法是什么?
<div class='entry'>
<p>#antibiotics destroy #e-coli and that's not good!!!!</p>
<!-- Hashtags: #antibiotics #eColi -->
<!-- UID: 755a2a60-972e-11e3-a464-872f2fc4dea2 -->
</div>
<div class='entry'>
<p>#bacteria can be #friendly, such as #e-coli for example</p>
<!-- Hashtags: #bacteria #friendly #eColi -->
<!-- UID: 6cc66d00-972e-11e3-a464-872f2fc4dea2 -->
</div>
<div class='entry'>
<p>#antibiotics can fight #bacteria</p>
<!-- Hashtags: #antibiotics #bacteria -->
<!-- UID: b37992c0-9686-11e3-8b2c-c97ae6645b3b -->
</div>
我知道 Angular 对这类东西很强大,但我想使用一些轻量且简单的东西。就像也许可以用 jQuery 或其他东西来做到这一点......
仅供参考,整个事情在 Node.Js / Express.Js 上运行,并带有 EJS 渲染。
谢谢!
更新
假设现在我需要检查几个主题标签。就像contains 变量不是字符串而是数组一样,我只需要显示包含该数组所有值的条目。我将如何更改代码?尝试这样做,但无法管理...非常感谢!
【问题讨论】:
-
您可以将主题标签添加到属性中吗?类似
data-hash="bacteria friendly"?这样做会更容易一些 -
您需要类似
$('*:contains("#antibiotics")');的内容才能在每个.entry类中找到主题标签。对于匹配的,您然后选择并执行您的操作。这可能会极大地影响您的表现。特别是如果您的页面包含数千个这样的内容。
标签: javascript jquery ejs