Navigation 在编写jquery函数时?如何在函数中向$(this)添加:n个子项?

Navigation 在编写jquery函数时?如何在函数中向$(this)添加:n个子项?,navigation,html-lists,siblings,jquery,Navigation,Html Lists,Siblings,Jquery,我需要通过抓取当前年份,使其成为第一个nav元素,使用jQuery构建导航。然后构建其他列表项以显示随后的年份。。。我的问题是针对jQuery函数中的列表项的同级,我希望能够做到这一点,这样我就可以轻松地在多个页面上运行该函数。。。这是我到目前为止所拥有的。。。如果有帮助的话,我可以摆弄一把小提琴,只要提出要求就行了 这是成功/有效的代码,但未包装在jQuery函数中: $currentYear = (new Date).getFullYear(); $navListEl = $("#yearN

我需要通过抓取当前年份,使其成为第一个nav元素,使用jQuery构建导航。然后构建其他列表项以显示随后的年份。。。我的问题是针对jQuery函数中的列表项的同级,我希望能够做到这一点,这样我就可以轻松地在多个页面上运行该函数。。。这是我到目前为止所拥有的。。。如果有帮助的话,我可以摆弄一把小提琴,只要提出要求就行了

这是成功/有效的代码,但未包装在jQuery函数中:

$currentYear = (new Date).getFullYear();
$navListEl = $("#yearNav li").length; // = 7
$lastYear=0;
for (var i=1;i<$navListEl+1;i++)
{  
    $("#yearNav li"+":nth-child("+i+")").append($currentYear-$lastYear);
    $lastYear++;
}
$currentYear=(新日期).getFullYear();
$navListEl=$(“#i”)。长度;//=7.
$lastYear=0;
对于(var i=1;iTry


作为Musa答案的替代方案,如果您希望避免为每个元素重新运行选择器,则可以使用以下两种方法中的任意一种在选定元素列表上迭代一次:

  • 在for循环中使用
    eq()
    方法按索引访问列表中的每个元素:

    jQuery.fn.createNav = function(){
        $currentYear = (new Date).getFullYear();
        $navListEl = $(this).length; // = 7
        $lastYear = 0;
    
        for (var i = 0; i < $navListEl; i++)
        {
            $(this).eq(i).append($currentYear - $lastYear);
            $lastYear++;
        }
    }
    

  • 尼斯完全忘记了这一点,像个魔术师一样工作!穆萨先生,你就是那个人!太狡猾了!!我实际上在使用第二个答案,但我想知道如何将第n个孩子附加到$(这个)但是你肯定会得到这个答案的检查和竖起大拇指,因为它可能会帮助其他人寻找某种类型的答案…这绝对是最简单的,也是我提供的这个特定示例的最佳方法…谢谢你的答案!!
    jQuery.fn.createNav = function(){
        $currentYear = (new Date).getFullYear();
        $navListEl = $(this).length; // = 7
        $lastYear = 0;
        for (var i=1;i<$navListEl+1;i++)
        {  
            $(this).append($currentYear-$lastYear);
            $lastYear++;
        }
    }
    
    $("#yearNav li").siblings().createNav();
    
    $(this.selector+":nth-child("+i+")").append($currentYear-$lastYear);
    
    jQuery.fn.createNav = function(){
        $currentYear = (new Date).getFullYear();
        $navListEl = $(this).length; // = 7
        $lastYear = 0;
    
        for (var i = 0; i < $navListEl; i++)
        {
            $(this).eq(i).append($currentYear - $lastYear);
            $lastYear++;
        }
    }
    
    jQuery.fn.createNav = function(){
        $currentYear = (new Date).getFullYear();
        $navListEl = $(this).length; // = 7
        $lastYear = 0;
    
        $(this).each(function(){
            $(this).append($currentYear - $lastYear);
            $lastYear++;
        });
    }