Jquery 减少来自类或ID的冗余调用/查找

Jquery 减少来自类或ID的冗余调用/查找,jquery,Jquery,为错误的标题或问题道歉。但是为了便于理解,我这里有一个代码,例如多次调用头部。下面的变量指定要克隆的元素,即#头a[href=$=“programs”]。ID#header在我的代码中被多次调用。是否有一种方法可以调用它一次并将其插入到我的代码中,而不是手动添加它。我对javascript还是新手 尽管我对编程缺乏了解,但我希望我能很好地解释它 var programsMenu = []; programsMenu.push($('#header a[href$="/pr

为错误的标题或问题道歉。但是为了便于理解,我这里有一个代码,例如多次调用头部。下面的变量指定要克隆的元素,即
#头a[href=$=“programs”]
。ID
#header
在我的代码中被多次调用。是否有一种方法可以调用它一次并将其插入到我的代码中,而不是手动添加它。我对javascript还是新手

尽管我对编程缺乏了解,但我希望我能很好地解释它

    var programsMenu = [];
        programsMenu.push($('#header a[href$="/programs"]').clone());
        programsMenu.push($('#header a[href$="/programs"]').next().clone());


    var degreesMenu = [];
        programsMenu.push($('#header a[href$="/programs"]').clone());
        degreesMenu.push($('#header a[href$="/degree-programs"]').clone());
        degreesMenu.push($('#header a[href$="/degree-programs"]').next().clone());

(函数($){
"严格使用",;
变量页脚导航={
init:function(){
变量程序菜单=[];
programsMenu.push($('#头a[href$=“/programs”]').clone();
programsMenu.push($('#头a[href$=“/programs”]').next().clone());
var degreesMenu=[];
programsMenu.push($('#头a[href$=“/programs”]').clone();
degreesMenu.push($('#头a[href$=“/学位程序”]”).clone();
degreesMenu.push($('#标题a[href$=“/学位程序”]”)。next().clone());
$('#footer.programs menu.degree').append(degreesMenu);
var非偏析=[];
nonDegreeMenu.push($('#头a[href$=“/高管教育计划“]).clone());
nonDegreeMenu.push($(“#头a[href$=”/development education programs“]).clone();
nonDegreeMenu.push($(“#头a[href$=”/program schedules“]).clone();
$('#footer.programs menu.non degree').append(nonDegreeMenu);
var-schoolMenu=[];
school menu.push($('#标题a[href$=“/schools”]').clone();
school menu.push($('#标题a[href$=“/schools”]')。next().clone());
$('#footer.schools faculty menu.schools').append(school menu);
var facultyMenu=[];
facultyMenu.push($('#标题a[href$=“/教员和职员“]).clone());
facultyMenu.push($(“#头a[href$=”/faculty and staff“]).next().clone());
$('#footer.schools faculty menu.faculty').append(facultyMenu);
//var Research菜单=[];
//researchMenu.push($('a[href$=“/research centers“]).clone();
//researchMenu.push($('a[href$=“/research centers“]).next().clone());
var researchCenters=$(“#标题a[href$=”/research centers“])。下一步().clone(),
中心列表=$('li',研究中心),
研究=$(“#footer.research centers menu.research”),
出版物=$(“#页脚.研究中心菜单.出版物”),
publicationsMenu=$('
    )。附录(出版物), 研究菜单=$('
      )。附录(研究), 中心=中心列表切片(0,6), resources=centersList.slice(6); //存储研究锚和AIM研究中心 var aimResearchCenters=[]; aimrearchcenters.push($('#header a[href$=“/research centers”]').clone(); aimrearchcenters.push($(researchMenu.append(centers)); //附加研究阵列 $('#footer.research centers menu.research').append(aimrearchcenters); publicationsMenu.append(资源); /* $('#footer.research centers menu.research').append(centers); $('#footer.research centers menu.publications')。追加(参考资料); */ var aboutMenu=[]; aboutMenu.push($('a[href$=“/关于我们“]).clone(); aboutMenu.push($('a[href$=“/关于我们“]).next().clone()); $('#footer.about menu.about').append(aboutMenu); //在页眉上复制面包屑,并将其插入页脚 var breadcrumbs=$('.region breadcrumb').clone(); $('.region breadcrumb').clone().insertAfter('#footer.footer head'); } } $(文档).ready(函数(){ footerNavigation.init(); }) })(jQuery);
您可以使用变量来携带jQuery元素

这不仅可以缩短代码并使其更具可读性…
它还减少了jQuery在文档上查找元素的次数,从而提高了代码的效率

比如:


谢谢你的见解,虽然我考虑过使用变量,但我想我更多的是考虑一个函数。但是谢谢你,你必须定义你想要的目标元素。这就是你可以做一次的方式。。。然后多次使用它。没有别的办法我知道。
(function ($) {
    'use strict';


    var footerNavigation = {
        init : function() {

            var programsMenu = [];
                programsMenu.push($('#header a[href$="/programs"]').clone());
                programsMenu.push($('#header a[href$="/programs"]').next().clone());


            var degreesMenu = [];
                programsMenu.push($('#header a[href$="/programs"]').clone());
                degreesMenu.push($('#header a[href$="/degree-programs"]').clone());
                degreesMenu.push($('#header a[href$="/degree-programs"]').next().clone());

            $('#footer .programs-menu .degree').append(degreesMenu);

            var nonDegreeMenu = [];
                nonDegreeMenu.push($('#header a[href$="/executive-education-programs"]').clone());
                nonDegreeMenu.push($('#header a[href$="/development-education-programs"]').clone());
                nonDegreeMenu.push($('#header a[href$="/program-schedules"]').clone());

            $('#footer .programs-menu .non-degree').append(nonDegreeMenu);

            var schoolMenu = [];
                schoolMenu.push($('#header a[href$="/schools"]').clone());
                schoolMenu.push($('#header a[href$="/schools"]').next().clone());

                $('#footer .schools-faculty-menu .schools').append(schoolMenu);


            var facultyMenu = [];
                facultyMenu.push($('#header a[href$="/faculty-and-staff"]').clone());
                facultyMenu.push($('#header a[href$="/faculty-and-staff"]').next().clone());

                 $('#footer .schools-faculty-menu .faculty').append(facultyMenu);

            // var researchMenu = [];
            //     researchMenu.push($('a[href$="/research-centers"]').clone());
            //     researchMenu.push($('a[href$="/research-centers"]').next().clone());

            var researchCenters  = $('#header a[href$="/research-centers"]').next().clone(),
                centersList      = $('li', researchCenters),
                research         = $('#footer .research-centers-menu .research'),
                publications     = $('#footer .research-centers-menu .publications'),
                publicationsMenu = $('<ul class="menu" />').appendTo(publications),
                researchMenu     = $('<ul class="menu" />').appendTo(research),
                centers          = centersList.slice(0, 6),
                resources        = centersList.slice(6);

            //Store Research anchor and AIM Research Centers 
            var aimResearchCenters = [];
                aimResearchCenters.push($('#header a[href$="/research-centers"]').clone());
                aimResearchCenters.push($(researchMenu.append(centers)));

            //Append aimResearch array
            $('#footer .research-centers-menu .research').append(aimResearchCenters);

            publicationsMenu.append(resources);


            /*
            $('#footer .research-centers-menu .research').append(centers);
            $('#footer .research-centers-menu .publications').append(resources);
            */


            var aboutMenu = [];
                aboutMenu.push($('a[href$="/about-us"]').clone());
                aboutMenu.push($('a[href$="/about-us"]').next().clone());

            $('#footer .about-menu .about').append(aboutMenu);


            //Duplicate Breadcrumns on header and insert it on footer
            var breadcrumbs = $('.region-breadcrumb').clone();
            $('.region-breadcrumb').clone().insertAfter('#footer .footer-head');
        }
    }

    $(document).ready(function() {
        footerNavigation.init();
    })

})(jQuery);
var programs = $('#header a[href$="/programs"]');
var degrees = $('#header a[href$="/degree-programs"]');
var schools = $('#header a[href$="/schools"]');

// and so on...