-1

PHPで書かれたサインアップフォームがあります。質問の各セットはフィールドセット内にあります。ページがロードされたときに開いているように見えるフィールドセットは #are_you で、応答が受信されるとフィールドセットを閉じて次の質問セットに移動します。

ページがロードされたときに開いているように見えるフィールドセットを制御したいと思います。私のフィールドセット #additional_login (div #advertise_form 内) が存在する場合、#are_you の代わりにそのフィールドセットが開いているように見せたいです。#additional_login が設定されていない場合は、#are_you が開いているように見えるようにしてください。ユーザーへの #additional_login の外観は、PHP の if(isset()) 条件によって制御されます。

私は jQuery に詳しくないので (申し訳ありません!)、他の SO の質問から if 条件を適用しようとすると苦労しました。#are_you が開いているように見せるコード行は、次の構文で .js ファイルに記述されます。

jQuery('#advertise_form fieldset#are_you').fadeTo(250, 1, 0).removeClass('close');

どうすればこれを達成できるか教えてください。前もって感謝します!

4

3 に答える 3

1
if ($('#additional_login').length) {
    $('#additional_login').fadeIn();
} else {
    $('#are_you').fadeIn();
}
于 2012-09-20T21:15:10.813 に答える
1

次を使用して、要素が存在するかどうかをテストできますlength

if (jQuery('#additional_login').length) { 
  jQuery('#additional_login').addClass('open');
  jQuery('#are_you').addClass('close');
} else {
  jQuery('#are_you').addClass('open');
}
于 2012-09-20T21:15:36.567 に答える
0

私はこの定式化を使用します:

$(document).ready(function(e){ //on page ready
    if ($(element).length) { //object contains elements
    //Do what you need to do when element exists
    }
});

.length は jQuery オブジェクトの要素数を返すため、数値 (true) または 0 (false) になります。

于 2012-09-20T21:15:08.083 に答える