带过滤器的jQuery动态选择器

时间:2015-03-02 19:26:07

标签: javascript jquery

我有动态生成的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并尝试输入时,循环不起作用!!

2 个答案:

答案 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相同,只允许切换它们。

如果您需要对过滤进行改进,请告诉我。 祝你好运!