0

ここで初心者への助けをいただければ幸いです。3 番目の条件が満たされていても、何らかの理由で 2 番目の条件にしか到達しない単純な if/else if ステートメントがあります。最後にelseを追加しようとしましたが、ほとんどすべてを試しましたが、まだ何も試していません。アラートトリガーを追加したため、3番目の条件に到達しないため、機能していないことはわかっています。ここで何が欠けていますか?いろいろ調べたので、ここで死んだ馬を打ち負かしていたら申し訳ありませんが、解決策が見つかりませんでした. 選択ドロップダウンボックスの変更に関する条件を取得しようとしていることに注意してください。ありがとう!!!

私のコード:

$('#table_two select:eq(6)').change(function(e){

var allDiv = $('#table_two,#table_three,#table_four');
var parBoxOne = $('#par_one').val();

var totalOne = 1 - parBoxOne;
var totalTwo = 2 - parBoxOne;


if ($(this).val() == "made_shot"){
$(allDiv).hide();
$('#score_one').val(totalOne);
$('#score_total').val($('.score_input').val());
alert('ACE!!');
}

else if ($(this).val() == 'green', 'trees', 'fairway', 'rough', 'sand' ){
$('#score_one').val(totalOne);
$('#score_total').val($('.score_input').val());
$('#table_two').hide();
$('#butt_two').html('Show stroke');
alert('triggered two');
}

else if ($(this).val() == 'other', 'penalty_water', 'penalty_ob', 'penalty_sand' ){
$('#score_one').val(totalTwo);
$('#score_total').val($('.score_input').val());
$('#table_two').hide();
alert('triggered three');
}

});
4

3 に答える 3

5

コンマを使用して if ステートメントで複数の条件を組み合わせることはできません。

if ($(this).val() == 'green', 'trees', 'fairway', 'rough', 'sand' )

代わりに、値リストを配列にして、値が配列内にあるかどうかを確認できます。

var stuff = ['green', 'trees', 'fairway', 'rough', 'sand'];
if ( $.inArray($(this).val(), stuff ) >= 0 )

if で複数の条件を組み合わせるには、構文は次のとおりです (上記よりもはるかに長い)。

if ($(this).val() == 'green' || $(this).val() == 'trees' || ... )
于 2012-07-20T01:01:49.830 に答える
1

ちょうど別のアプローチ:

switch($(this).val()){
    case 'made_shot':
        $(allDiv).hide();
        $('#score_one').val(totalOne);
        $('#score_total').val($('.score_input').val());
        alert('ACE!!');
        break;

    case 'green':
    case 'trees':
    case 'fairway':
    case 'rough':
    case 'sand':
        $('#score_one').val(totalOne);
        $('#score_total').val($('.score_input').val());
        $('#table_two').hide();
        $('#butt_two').html('Show stroke');
        alert('triggered two');
        break;

    case 'other':
    case 'penalty_water':
    case 'penalty_ob':
    case 'penalty_sand':
        $('#score_one').val(totalTwo);
        $('#score_total').val($('.score_input').val());
        $('#table_two').hide();
        alert('triggered three');
        break;
    }
于 2012-07-20T01:06:54.787 に答える
0

この方法で文字列を作成することはできません。$.inArray()代わりに関数を使用して、値の配列を作成できます。

jQuery.inArray( 値, 配列 [, fromIndex] )

 if($.inArray($(this).val(), ['green', 'trees', 'fairway', 'rough', 'sand']) != -1) {

 }
于 2012-07-20T01:00:49.500 に答える