Javascript Jquery代码优化(两个不同div的attr()方法)?

Javascript Jquery代码优化(两个不同div的attr()方法)?,javascript,jquery,performance,optimization,Javascript,Jquery,Performance,Optimization,我是javascript和jquery的新手,每天我都学习新东西。。。 我正在处理一个文件,我发现自己有以下代码: $('#mobileuser span').attr({ 'class': 'fa fa-user', 'style':'' }); $('#mobilesearch span').attr({

我是javascript和jquery的新手,每天我都学习新东西。。。 我正在处理一个文件,我发现自己有以下代码:

            $('#mobileuser span').attr({                    
                'class': 'fa fa-user',
                'style':''
            });

            $('#mobilesearch span').attr({                  
                'class': 'fa fa-search',
                'style':''
            });
在我尝试优化的过程中,我尝试了此解决方案,但不起作用:

var fontawesome= {          
    mobileuser: 'fa fa-user',
    mobilesearch: 'fa fa-search'    
}

$('#mobilesearch span, #mobileuser span').attr({                    
                'class': fontawesome[$(this).parent('div').attr('id')],
                'style':''
            });
你能建议我优化这段代码的最佳方法吗

非常感谢,很抱歉问你这个问题:)

试试这个:

$('#mobilesearch span, #mobileuser span').each(function() {
    $(this).attr({                
        'class': fontawesome[$(this).parent('div').attr('id')],
        'style':''
    });
});
试试这个:

$('#mobilesearch span, #mobileuser span').each(function() {
    $(this).attr({                
        'class': fontawesome[$(this).parent('div').attr('id')],
        'style':''
    });
});

您可以将函数传递给
.attr
。为与选择器匹配的每个元素调用该函数,在该函数中,
是特定元素。它应该返回具有特定属性的对象

$('#mobilesearch span, #mobileuser span').attr(function() {
    return {                
        'class': fontawesome[$(this).parent('div').attr('id')],
        'style':''
    };
});

您可以将函数传递给
.attr
。为与选择器匹配的每个元素调用该函数,在该函数中,
是特定元素。它应该返回具有特定属性的对象

$('#mobilesearch span, #mobileuser span').attr(function() {
    return {                
        'class': fontawesome[$(this).parent('div').attr('id')],
        'style':''
    };
});

你不需要。each()可能不需要。each but your code@gladsocc是你唯一不需要的。each()可能不需要。each but your code@gladsocc是唯一可以工作的。我会尝试让你知道:)我建议将
#id选择器span
替换为一个
.class选择器,哪个将被添加到保存图标的元素中(在本例中为
span
标记)。@Barmar但您的代码将“return”添加到两个span?真的吗?我不明白这个问题。对不起我很难,因为我是意大利人。。。我想在返回到“#mobilesearch span”和“#MobileSer span”时添加代码,例如,您的代码没有每个()。。。因此,我问您是否首先为“#mobilesearch span”和“#mobileuser span”运行“返回代码”…我尝试让您知道:)我建议将
#id选择器span
替换为一个
。类选择器
,它将添加到保存图标的元素中(在本例中为
span
标记).@Barmar但你的代码在两个span中都添加了“return”?真的吗?我不明白这个问题。对不起我很难,因为我是意大利人。。。我想在返回到“#mobilesearch span”和“#MobileSer span”时添加代码,例如,您的代码没有每个()。。。因此,我问您是否首先为“#mobilesearch span”和“#mobileuser span”运行“返回码”。。。。