1

他の投稿をいくつかチェックして、必要なコードを見つけましたが、必要なことを正確に実行していません。

画像のaltタグを元に、親要素にクラスを追加したい。

だからこれから:

<div class="img-wrap">
   <div class="img-icon">
      <a href="">
         <img alt="home" />
      </a>
   </div>
</div>

これに:

<div class="img-wrap home">
   <div class="img-icon">
      <a href="">
         <img alt="home" />
      </a>
   </div>
</div>

私が使用しているコードは次のとおりです。

$('img').each(function() {
$(this).parent().addClass( $(this).attr('alt') );
});

これは必要なクラスを追加しますが、それを「a」に追加します...しかし、#img-wrapに追加したいです。これどうやってするの?

4

4 に答える 4

3

ID は一意である必要があります。そのように ID を複製しないでください。クラスに変更しclass="img-wrap"て、以下のコードを確認してください。

HTML:

<div class="img-wrap">
   <div class="img-icon">
      <a href="">
         <img alt="home" />
      </a>
   </div>
</div>

コード:

$('img').each(function () {
   $(this).closest('.img-wrap').addClass(this.alt);
});
于 2012-10-22T19:13:34.880 に答える
1
$('img').each(function() {
$(this).parents('#img-wrap').addClass( $(this).attr('alt') );
});

また

$('img').each(function() {
    $(this).parent().parent().parent().addClass( $(this).attr('alt') );
    });
//to make it more obvious why it is not selecting the #img-wrap <div>

はい、#ID は 1 回だけ使用する必要があります。これが繰り返される場合は、代わりにクラスを使用してください。

于 2012-10-22T19:12:40.620 に答える
0

.closest() を使用して、必要な親要素を選択します http://api.jquery.com/closest/

于 2012-10-22T19:12:46.063 に答える
0

使ってみて.closest()

HTML ページのIDは一意である必要があることに注意してください。IDの代わりにdiv にクラスを指定してみてください。

    $('img').each(function() {
       $(this).closest('.img-wrap').addClass( $(this).attr('alt') );
    });


<div class="img-wrap">
  <div class="img-icon">
     <a href="">
       <img alt="home" />
     </a>
  </div>

于 2012-10-22T19:13:57.233 に答える