为什么jquery if/else代码没有隐藏/显示?

为什么jquery if/else代码没有隐藏/显示?,jquery,Jquery,请在下面的代码中找出我做错了什么?我知道这不是最优雅的代码,但我现在正在做五件事,我想我可以很快把这个简单的代码删掉,把它从我的盘子里拿出来 我想做的就是>>如果选择的项目类型等于某个特定值,则显示一个字段集,如果它不等于该值,则隐藏该字段集。很简单吧?如果选择的值不匹配,则无法将字段集隐藏 请注意,我不熟悉jquery,但这是一个基本的if/else-我在这里做错了什么?先谢谢你 $('fieldset#section-841', 'fieldset#section-837' ).hide()

请在下面的代码中找出我做错了什么?我知道这不是最优雅的代码,但我现在正在做五件事,我想我可以很快把这个简单的代码删掉,把它从我的盘子里拿出来

我想做的就是>>如果选择的项目类型等于某个特定值,则显示一个字段集,如果它不等于该值,则隐藏该字段集。很简单吧?如果选择的值不匹配,则无法将字段集隐藏

请注意,我不熟悉jquery,但这是一个基本的if/else-我在这里做错了什么?先谢谢你

$('fieldset#section-841', 'fieldset#section-837' ).hide();
var DM_projtype = new Array(
        {value : 'Direct Mail', sect_id : 'fieldset#section-841'},
        {value : 'Multiple items', sect_id : 'fieldset#section-837'}
    );
$('select#3596').change(function() {
    var getDM_projType = $(this).val();
    var sect_id = '';
     for (var i = 0; i < DM_projtype.length; ++i) 
        {
            if (DM_projtype[i].value == "Direct Mail" )
                {
                    sect_id = DM_projtype[i].sect_id;
                   $(sect_id).show();
                }
            else
                {
                   $('fieldset#section-841').hide(); 
                }
            if (DM_projtype[i].value == "Multiple items" )
                {
                    sect_id = DM_projtype[i].sect_id;
                   $(sect_id).show();
                }
            else
                {
                   $('fieldset#section-837').hide(); 
                }
       }
  });
$('fieldset#section-841','fieldset#section-837').hide();
var DM_projtype=新数组(
{value:'directmail',sect_id:'fieldset#section-841'},
{value:'Multiple items',sect_id:'fieldset#section-837'}
);
$('select 3596')。更改(函数(){
var getDM_projType=$(this.val();
var sect_id=“”;
对于(变量i=0;i
您已经按照逻辑构建了代码—数组中的每个元素都将通过循环进行处理,因此您将对包含的每个块集执行if和else。您应该这样做:

$('select#3596').on('change', function() // do .change() if using a lower jQuery version
{
    var thisVal = $(this).val(); // Assuming this returns 'Direct Mail' or 'Multiple Items'

    $(DM_projtype).each(function()
    {
         $(this.sect_id).hide();

         if(this.value == thisVal)
            $(this.sect_id).show();
    });
});

使用调试器单步执行代码。您不需要执行选择之类的操作,因为id选择器是最快的,所以您只需使用字段集选择器即可。我认为这不是问题所在。你的身份证无效。看看这个问题:好悲伤-谢谢你Tejs-这正是我想要的方式,谢谢你解释我做错了什么。