1

これは私のコードです:

html

<html>
<body>
  <div id="id">
    <div class="one">
      <img>
    </div>
    <div class="two">
      <img>
    </div>
    <div class="one">
      <img>
    </div>
  </div>
</body>
</html>

div class="one" 内でのみ画像の余白を変更したい ここに私のjqueryコードがあります:

$(document).ready(function() {                  
  $(".one").each(function(){
        $("img").css("margin-top", 10 "px");
  });
});

このコードはすべての画像マージンを変更してしまいます...助けて!

4

1 に答える 1

4

セレクターはすべての画像に$("img")一致するため、それぞれに 1 回、繰り返し適用します。これを試して:cssdiv.one

$(document).ready(function() {                  
  $(".one img").css("margin-top", "10px");
});

(私もに変更10 "px"しまし"10px"たが、それは質問のタイプミスだと思います。)

$(".one img")は、子孫セレクターimgを使用して、 class を持つ要素の子孫であるすべての要素に一致させ"one"ます。

(マークアップの例のように)直接の子であるもののみを一致させたい場合は、>代わりに次を使用します。

$(document).ready(function() {                  
  $(".one > img").css("margin-top", "10px");
  //      ^--- change is here
});

セレクターの詳細:

于 2013-05-31T21:37:45.780 に答える