不等同的条件在javascript中不起作用

时间:2016-02-26 11:00:14

标签: javascript conditional-statements

有没有人知道为什么以下条件在javascript中不起作用?

if ($(this).is(':checked') && this.name != 'AllgS') {
    $('#'+this.name+'colors').show('slow');
} 
else {
    $('#'+this.name+'colors').hide('slow');
}

第二个条件不例外,但我没有收到错误消息。 使用

if ($(this).is(':checked') && this.name == 'AllgS') {
    $('#'+this.name+'colors').show('slow');
} 
else {
    $('#'+this.name+'colors').hide('slow');
} 

工程...

编辑: 整个功能是

$('.Kennzahl').click(function(){
        if ($(this).is(':checked') && this.name != 'AllgS') {$('#'+this.name+'colors').show('slow');} else {$('#'+this.name+'colors').hide('slow');}
        if ($(this).is(':checked') && this.name == 'AllgS') {$('#'+this.name+'colors').show('slow');} 
        else {
            if ($('#AllgS').prop('checked') == false && $('#BerufS').prop('checked') == false)
            $('#'+this.name+'colors').hide('slow');
            else {}
        }

    });

2 个答案:

答案 0 :(得分:0)

tt将this.name ==" xx"因为你所写的不是有效的条件测试

  if ($(this).is(':checked') && (this.name == 'AllgS')) {
$('#'+this.name+'colors').show('slow');
  } 
 else {
  $('#'+this.name+'colors').hide('slow');
 } 

答案 1 :(得分:0)

嗯,您的代码经过一些修改后才能运行。检查此 fiddle

此外,如果你注意缩进,就会更容易弄清楚错误。没有完整的标记和任何其他想法,我试图从你的问题中的代码重现行为。如果选中相应的复选框,则以下代码会显示div ID AllgS

$('.Kennzahl').click(function(){
    $("#a").html($(this).is(":checked")+"  :   "+this.name);
    if ($(this).is(':checked') && this.name != 'AllgS') {
        $('#'+this.name+'colors').show('slow');
    } else {
        $('#'+this.name+'colors').hide('slow');
    }
    if ($(this).is(':checked') && this.name == 'AllgS') {
        $('#'+this.name+'colors').show('slow');
    } 
    else if (!$('#AllgS').prop('checked') && !$('#BerufS').prop('checked')){
        $('#'+this.name+'colors').hide('slow');
    }
});