1

ID #color-lines と各要素の一意のクラスを持つ要素のリストを反復しようとしています<div id="color-lines" class="block-2088">。一意のクラスは WordPress の投稿 ID によって動的に駆動されるため、各ブロックは一意になります。

各 div 内にはさまざまな数の<a>タグがあり、各 div にある子要素の数に応じて、それぞれに addClass を使用しようとしています。

    $( "#color-lines" ).each(function(){

        var className = $( this ).attr("class");
        var anchoLink = ( "." + className );

        var n = $( anchoLink ).children().length;

        $( anchoLink ).children().addClass( "line-width-" + n );

    });

私が得るのは、各divに異なる数の要素があるにもかかわらず、すべてのdiv要素に対して<a>同じクラスを持つ各タグです。line-with-n<a>

4

3 に答える 3

2

ID とクラスを入れ替えます。つまり、ID は一意である必要があり、クラスは同様の要素で使用する必要があります。each()同じクラスで要素のループを書くことができます:

$(".color-lines").each(function() {
    var n = $(this).children.length;
    $(this).children("a").addClass("line-width-" + n);
});
于 2013-06-03T13:48:55.550 に答える
1

ID's一意である必要がありますclassが、重複する可能性があります。

idas セレクターを使用すると 1 つのアイテムのみが返されるため$('#color-lines).each、最初の#color-lines.

于 2013-06-03T13:45:12.330 に答える
0

ID は一意でなければならないという規則には同意しますが、DIV セレクターに find() 呼び出しを追加する必要があるかもしれません。この例では、クラスと ID 属性を交換したと想定しています。

$( ".color-lines" ).each(function(){

    $( this ).find("a").addClass( "line-width-" + $(this).children().length );

});
于 2013-06-03T13:48:29.207 に答える