Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数赢得';不能产生预期的结果_Javascript_Jquery - Fatal编程技术网

Javascript函数赢得';不能产生预期的结果

Javascript函数赢得';不能产生预期的结果,javascript,jquery,Javascript,Jquery,因此,我有一个Javascript函数,它应该生成该项的第n个子项。下面是该函数的代码 函数findNthChild(元素){ nthchild=1; 控制台日志(元素); if(element.prev().hasClass('.point')){ while(element.prev().hasClass('.point')){ nthchild++; element==element.prev() } 归还儿童; } 否则{ 控制台日志('lmao'); 返回1; } }从您的元素中,您

因此,我有一个Javascript函数,它应该生成该项的第n个子项。下面是该函数的代码

函数findNthChild(元素){
nthchild=1;
控制台日志(元素);
if(element.prev().hasClass('.point')){
while(element.prev().hasClass('.point')){
nthchild++;
element==element.prev()
}
归还儿童;
}
否则{
控制台日志('lmao');
返回1;
}

}
从您的元素中,您想要的算法可能如下所示

  • 查看下一个同级元素,
    elm
  • 如果
    elm
    未定义或为null,则返回
    null
  • 如果
    elm
    具有类兴趣类,则将
    n
    减少
    1
  • 如果
    n
    大于
    0
    返回步骤1
  • 返回
    elm
  • 香草的

    function nthSiblingElementByClass(sibling, n, cls) {
        if (sibling) do {
            if (sibling.classList.contains(cls))
                if (--n < 0) return sibling;
        } while (sibling && (sibling = sibling.nextElementSibling));
        return null;
    }
    
    函数nthSiblingElementByClass(同级,n,cls){
    如果(兄弟姐妹)做什么{
    if(同级.classList.contains(cls))
    如果(--n<0),则返回同级;
    }而(sibling&(sibling=sibling.nextElementSibling));
    返回null;
    }
    
    用法,例如在本页上

    var elm = document.querySelector('.kwd');
    nthSiblingElementByClass(elm, 5, 'pln'); // <span class=​"pln">​console​</span>​
    
    var elm=document.querySelector('.kwd');
    NthSiblinglementByClass(elm,5,'pln');//​安慰​​
    
    element=element.prev()而不是
    element==element.prev()
    元素
    是jQuery对象还是DOM元素?这将如何说出它是第n个子元素?您还可以提供一个JSFIDLE或示例,以便我更好地理解其用法。