使用.ech()迭代具有类似类名的元素

using .each() to iterate elements with similar class name

本文关键字:元素 ech 迭代 使用      更新时间:2023-09-26

我有一组div元素。我称它们为di1、di2、di3,但还有更多。

事实上,我向他们展示了这段代码:

$("#elenco_elimina_gruppo").find("div.di1").show();
$("#elenco_elimina_gruppo").find("div.di2").show();
$("#elenco_elimina_gruppo").find("div.di3").show();

我想使用jQuery的每个函数。你能帮我吗?

您可以只使用$("#elenco_elimina_gruppo div").show();

如果只有三个div,则可以使用多重选择器:

$("#elenco_elimina_gruppo").find(".di1, .di2, .di3").show();

假设除了显示元素之外,还想执行更多操作,下面是如何使用.each():

$("#elenco_elimina_gruppo div").each(function(index) {
    var currentClassName = $(this).attr("class");
    if (currentClassName.length > 2 && currentClassName.substr(0, 2) == "di") {
        $(this).show();
        //you can do more actions here...
    }
});

​实时测试用例。

如果你只是想展示它们,不需要在.each()中使用.filter()方法:

$("#elenco_elimina_gruppo div").filter(function() {
    var currentClassName = $(this).attr("class");
    return (currentClassName.length > 2 && currentClassName.substr(0, 2) == "di");
}).show();

实时测试用例。

您可以使用类似-的东西

$("#elenco_elimina_gruppo").children().each(function() {
    $(this).show();                    
});

请参阅此处的示例-http://jsfiddle.net/nonocut/pNyuT/2/

下面是一个JSFiddle,代码如下每个功能都很简单,例如

$.each( ["di1","di2","di3"], function(item, index) {
     $("#elenco_elimina_gruppo div." + item ).show();
});

你也可以像这样使用

$.each( $("#elenco_elimina_gruppo").find("div.di1,div.di2,div.di3"), function(item, index) {
     $(item).show();
});

有很多方法可以做你想要做的事情,这只是品味的问题。我更喜欢Speransky Danil的答案,并在所有div上添加一个公共类,但这确实是你的选择。为了方便起见,我添加了一个JSFiddle