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

时间:2012-08-21 07:45:25

标签: javascript jquery

我有一组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的函数。你能救我吗?

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

如果它只有三个div,您可以使用multiple selector

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

答案 2 :(得分:0)

假设您想要执行更多操作,只是显示元素,以下是.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...
    }
});

​Live test case

如果您只想展示它们,则.each()无需使用.filter()方法:

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

Live test case

答案 3 :(得分:0)

你可以使用像 -

这样的东西
$("#elenco_elimina_gruppo").children().each(function() {
    $(this).show();                    
});

在此处查看示例 - http://jsfiddle.net/nonocut/pNyuT/2/

答案 4 :(得分:0)

Here is a 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