我有动态生成的html div ID。
<div id="1-test" class="new">
<div id="2-test" class="new">
<div id="3-test" class="new">
<div id="4-test" class="new">
我需要在点击时显示/隐藏这些div。我正在尝试这个
var filterid='test';
$('.new[id$=filterid]').each(function (index) {
$(this).toggle();
});
但是,它不会进入循环内部。任何人都可以在这里提出错误吗?提前谢谢。
如果我这样做,我会看到循环正在运行。
$('.new').each(function (index) {
alert($(this).attr('id'));
});
当我动态过滤id并尝试输入时,循环不起作用!!
答案 0 :(得分:2)
只是为了标记解决方案......
$('.new[id$=' + filterid + ']').toggle();
感谢Vohuman和j08691
答案 1 :(得分:0)
请检查我的Plunk,看看这是否为您提供了所需的功能。我相信它应该来自你所描述的内容。
而不是:
var filterid='test';
$('.new[id$=filterid]').each(function (index) {
$(this).toggle();
});
我添加了一个“点击”事件,形式为:
$(".new").click(function(){
var filter = $("#filter").val();
if ($(this).attr("id") != filter) return;
$(this).toggle();
});
检查过滤器的id是否与单击的id相同,只允许切换它们。
如果您需要对过滤进行改进,请告诉我。 祝你好运!