Javascript函数赢得';不能产生预期的结果
因此,我有一个Javascript函数,它应该生成该项的第n个子项。下面是该函数的代码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; } }从您的元素中,您
函数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
返回步骤1elm
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或示例,以便我更好地理解其用法。