0

div に class='completed' があるかどうかを確認してから、Hello を追加する必要があります。そうでなければ何もしません。しかし、私が書いたコードは、div に class='completed' が含まれていなくても Hello を追加しています。

jssfiddle 1 2 3

$(document).ready(function(){
  $( '#bar > div' ).each(function() { 
      if(($('.complete').length > 0)){
           var txt = $(this).find('.step-number').empty();
                     $(this).find('.step-number').after('<span class="hello">Hello</span>');
      }
  });
});
4

9 に答える 9

1

hasClassを使用するだけです:

一致した要素のいずれかに指定されたクラスが割り当てられているかどうかを判別します

于 2013-07-05T09:10:45.257 に答える
1

このコードを置き換えるだけです

if($('.complete').length > 0){

これとともに

if($(this).hasClass('complete')){

フィドルのデモ

実際、あなたのコードでは

$('.complete').length

2そのクラスには2つの要素があるため、常に値を返します。$('.complete').lengthしたがって、常に0より大きくなります。したがって、Hellodivにclass = 'completed'が含まれていなくても追加されます。

于 2013-07-05T09:10:48.497 に答える
1

jQuery のhasClass("class-name").

于 2013-07-05T09:11:04.843 に答える
0

これを試して、

$(document).ready(function(){
  $( '#bar > div' ).each(function() { 
      if(($(this).hasClass('complete'))){
           var txt = $(this).find('.step-number').empty();
                     $(this).find('.step-number').after('<span class="hello">Hello</span>');
      }
  });
});
于 2013-07-05T09:11:41.373 に答える
0

試すhasClass

$(document).ready(function(){
  $( '#bar > div' ).each(function() { 
     if($(this).hasClass('complete')){
           var txt = $(this).find('.step-number').empty();
                     $(this).find('.step-number').after('<span  class="hello">Hello</span>');
      }
  });
});

ワーキングデモ

于 2013-07-05T09:12:00.770 に答える
0

この目的にはhasClassを使用する必要があります。

説明: 一致した要素のいずれかに特定のクラスが割り当てられているかどうかを判断します。

例:<div id="mydiv" class="foo bar"></div>

.hasClass() メソッドは、クラスが要素に割り当てられている場合、他のクラスも割り当てられている場合でも true を返します。たとえば、上記の HTML の場合、次は true を返します。

$('#mydiv').hasClass('foo')

したがって、コードでは を使用する必要がありますif($(this).hasClass('complete'))

于 2013-07-05T09:12:27.093 に答える
0

completeセレクターで次のように指定することもできます。

 $( '#bar > div.complete' ).each(function() { 
      var txt = $(this).find('.step-number').empty();
      $(this).find('.step-number').after('<span class="hello">Hello</span>');
  });
于 2013-07-05T09:12:55.993 に答える
0

も必要ありません。セレクター.eachを使用できます。:has()

$(document).ready(function(){
    $('#bar > div:has(.completed)')
      .find('.step-number')
      .empty()
      .after('<span class="hello">Hello</span>');
});
于 2013-07-05T09:13:10.390 に答える