0

希望对这里的新手有任何帮助。我有一个简单的 if/else if 语句,由于某种原因,即使满足第三个条件,它也只能达到第二个条件。我已经尝试在末尾添加其他内容,几乎尝试了所有内容,但仍然没有。我知道它不起作用,因为我添加了警报触发器,无论如何它永远不会达到第三个条件。我在这里想念什么?我环顾四周,所以如果我在这里打败一匹死马,我很抱歉,但我找不到解决方案。我应该注意,我正在尝试获取更改选择下拉框的条件。谢谢!!!

我的代码:

$('#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 回答