带过滤器的jQuery动态选择器

jQuery Dynamic Selector with Filter

本文关键字:动态 选择器 jQuery 过滤器      更新时间:2023-09-26

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

只是为了标记解决方案。。。

$('.new[id$=' + filterid + ']').toggle();

感谢Vohuman和j08691

请检查我的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相同,并且只允许切换它们。

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