【发布时间】:2017-03-12 04:33:30
【问题描述】:
我想向我的网站添加一个 jQuery 显示/隐藏 功能。 usual 显示/隐藏功能有效,但我的功能比通常的要复杂一些。
“隐藏 div”和我想在点击时隐藏/显示的 div 位于 for 循环内,并且有大量具有此名称的 div。我可以(以编程方式)为每个 div 添加特定的 id,但我无法以编程方式在 JavaScript 中添加此名称:我必须手动添加它们。
这是我要添加功能的一段代码:
{% for facet in facets %}
<div class="block-title"> {{ facet.name }} <div id="hide">HIDE</div></div>
<ul class="term-list">
{% for stat in stats %}
<li class="term-item>{{ stat.name }}</li>
{% endfor %}
</ul>
{% endfor %}
这是显示/隐藏功能:
<script>
$(document).ready(function(){
$("#hide").click(function(){
$(".term-list").hide();
});
$("#show").click(function(){
$(".term-list").show();
});
});
</script>
当我点击隐藏按钮时,它会按预期隐藏每个.term-list div。
我尝试了两种方法都没有成功:
- 我在
#hide和.term-listdiv 中添加了一个数字(带有forloop),它变成了:#hide1和.term-list1,#hide2和.term-list2,...但是我无法添加对 JavaScript 代码进行 for 循环。 - 当点击
#hide时,我尝试仅隐藏以下(下一个).term-list div,但next()和nextAll()functions 不起作用。
那么,我应该怎么做才能在这个 for 循环中添加 jQuery 显示/隐藏函数?
【问题讨论】:
-
只需为 javascript 使用部分选择器。如果您有
#hide1等,请使用$('[id^=hide]')选择特定ID,并将其与event.target(被点击的元素)匹配
标签: javascript jquery html for-loop