私はこのコードを 2 時間以上試し、微調整してきましたが、まだ理解に近づいていません。
私は次のことをしようとしています、
div にクラス.item1、.item2、.item3がある場合、それぞれに css スタイルを追加しますが、スクリプトでさらに .item(number) クラスで自動的に作成される div があるため、カウントを自動的に取得するには .item(number) が必要です.
「.single-attendee-wrapper」に「.item + (i+1)」も必要ですが、これを機能させることはできません。
最新の修正 -
/* Inline validation */
.on( 'blur change', '.input-text', function() {
$(".single-attendee-wrapper").each(function(i){
var $this = $(this);
var validated = true;
if ( $(".cart > .item" + (i+1)) ) {
if ( $this.val() == '' ) {
$(".item" + (i+1) + " .count").css('background','#ED616A');
$(".item" + (i+1) + " .count").css('color','#fff');
validated = false;
}
}
if ( validated ) {
$(".item" + (i+1) + " .count").css('background','#D1D3D4');
$(".item" + (i+1) + " .count").css('color','#808285');
}
});
} )
これまでの私のスニペットは次のとおりです。
.on( 'blur change', '.input-text', function() {
var count = 0;
$(".single-attendee-wrapper .input-text").each(function(){
var $this = $(this);
var validated = true;
count++;
if ( $(this) ) {
if ( $this.val() == '' ) {
$('.item'+ count + ' .count').css('background','#ED616A');
$('.item'+ count + ' .count').css('color','#fff');
validated = false;
}
}
if ( validated ) {
$('.item'+ count + ' .count').css('background','#D1D3D4');
$('.item'+ count + ' .count').css('color','#808285');
}
});
} )
私のスクリプトをさらに進めると、これは完璧に機能します。
$(".single-attendee-wrapper").each(function(i) {
$(this).addClass("item" + (i+1));
});
HTML
<div class="single-attendee-wrapper item1">
<div class=" product-addon product-addon-one-attendee" style="display: block;">
<div class="count" style="">1</div>
</div>
<div class="single-attendee-wrapper item2">
<div class=" product-addon product-addon-two-attendees" style="display: block;">
<div class="count" style="">2</div>
</div>
<div class="single-attendee-wrapper item3">
<div class=" product-addon product-addon-three-attendees" style="display: block;">
<div class="count" style="">3</div>
</div>