質問

繰り返したい ライン 要素。各 ライン 要素があります アイテム 子要素としての要素。だから最初に反復します ライン そして、私は特定のことに対処したいと思います アイテム 3番目の要素。これは私が持っているコードです:

$(".pricetable .righttable .line:not(.blank)").each(function(j) {
    var currentLine = $(".pricetable .righttable .line:not(.blank)").eq(j);
    currentLine.(".item").each(function(k) {
        $(".pricetable .righttable .line .item").eq(i).addClass("active");
    });
});

問題は、私が子供の要素に対処する方法がわからないということです アイテム クラス。

currentLine.(".item").each(function(k)

これは動作しません。

XMLフィルターは、XML以外の値({0:#2 =({})、長さ:1、prevobject:{length:3、prevobject:{0:#1 =({})、context:#1#に適用されます。 、長さ:1}、コンテキスト:#1#、selector: "。プリセテブル.righttable .line:not(.blank)"、0:#2#、1:({})、2:({})}、コンテキスト:#1#、selector: "。pricetable .righttable .line:not(.blank).slice(0,1)"})file:/users/xxx/lib/pricetable.js行112

編集:
うわー、私はそんなに良い反応が得られるとは思っていませんでした!私はこの解決策を使用していると思います:

$(".pricetable .righttable .line:not(.blank)").each(function(j) {
    $(this).children(".item").eq(i).addClass("active");
});
役に立ちましたか?

解決

$(".pricetable .righttable .line:not(.blank)").each(function(j) {
    var currentLine = $(".pricetable .righttable .line:not(.blank)").eq(j);
    currentLine.find(".item").each(function(k) {
        $(".pricetable .righttable .line .item").eq(i).addClass("active");
    });
});

http://api.jquery.com/find/

彼らがCurrentlineの直接の子供なら、あなたはただできるはずです children('.item') 代わりに find('.item'). 。これはDOMのトラバースと呼ばれます。このページ(http://api.jquery.com/category/traversing/)にアクセスし、そこにある関数のいくつかの説明を読んでください。あなたがたくさん横断するならば、彼らは非常に便利です:)

他のヒント

$('.pricetable .righttable .line:not(.blank)').find('.item').each(function() {
  // this point to child element - item
  // use $(this).addClass('active');
});

私があなたの質問に答える前にわずかな改善:

var currentLine = $(".pricetable .righttable .line:not(.blank)").eq(j);

簡単に交換できます:

var currentLine = $(this);

第二に、3番目を見つけたい場合 .item 内側の要素 $(this), 、 使用する .find()

.find(".item:nth-child(3)");

行を反復する必要はありません。行を反復する必要がある場合は、比較してください k2 (JavaScriptが0からカウントされるため)それだけです。

あなたがnthで何かをしたいなら item それぞれの line, 、見た目よりもはるかに簡単です:

var index = 3; // the third "item" element 
$(".pricetable .righttable .line:not(.blank) .item:nth-child(" + index + ")")
  .addClass("active");

動作中にそれを見てください.

上記が十分ではないことをやりたいことはありますか?

$(".pricetable .righttable .line:not(.blank)").each(function() {
  $(this).find('.item:nth-child(2)').addClass('active');
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top