1

私は書くことができることを知っています:

 $('.2020').css("padding", "20px");

しかし、次のように書くにはどうすればよいですか。

 $('.a').children('img').children('.2020').css("padding", "20px");

 <div class"a">
 <img class="2020" src="img/swatch/2020.jpg" >
 <img class="2021" src="img/swatch/2021.jpg" >
 <img class="2022" src="img/swatch/2022.jpg" >
 </div>

http://jsfiddle.net/ssRYk/

4

2 に答える 2

1

あなたのセレクターは、 class を持つ要素の中にある要素の中にある class を$('.a').children('img').children('.2020')持つ要素を見つけようとします。2020imga

<div class="a">
    <img src="img/swatch/2020.jpg" >
        <span class="2020"></span>
    </img>
</div>

ただし、あなたの場合、要素には class 属性があるため、 andセレクターをimg連結するか、を使用して要素を見つけ、そのセット内のクラスで要素をフィルター処理するかの 2 つの選択肢があります。img.2020.children('img.2020')img.children('img').filter('.2020')

同じ構造を保持したい場合は、次のことができます

$('.a').children('img').filter('.2021').css("padding", "5px");

デモ:フィドル

于 2013-07-12T02:39:29.810 に答える
0

上記のフィドルとコードの両方にエラーがあり=ます。class="a"

クラスaを持つすべての要素を探すと言っています。画像である子供たちを探すよりも。次に、クラス 2021 を持つ子を持つ画像を探します。画像は子を持つことができないため、そのコードは何も返しません。

複数のアクションを実行する代わりに、2 つの子ステートメントを 1 つのセレクターと組み合わせることができます。

$('.a').children('img.2021').css("padding", "5px");

1 つのセレクターで子なしで記述することもできます。

$('.a > img.2021').css("padding", "5px");

代替手段はフィルタリングです。

于 2013-07-12T02:38:44.423 に答える