Javascript函数不会产生预期的结果

时间:2016-04-17 20:47:19

标签: javascript jquery

所以我有一个Javascript函数应该产生项目的第n个孩子。以下是该功能的代码。

function findNthChild(element) {
	nthchild = 1;
	console.log(element);
	if (element.prev().hasClass('.point')) {
		while (element.prev().hasClass('.point')) {
			nthchild++;
			element == element.prev()
		}
		return nthchild;
	}
	else {
		console.log('lmao');
		return 1;
	}
}

1 个答案:

答案 0 :(得分:0)

从您的元素中,您想要的算法可能看起来像这样

  1. 查看下一个兄弟元素elm
  2. 如果elm 未定义 null 返回null
  3. 如果elm interestingClass 类,请n
  4. 减少1
  5. 如果n大于0,请返回第1步
  6. 返回elm
  7. 香草,

    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;
    }
    

    用法,例如在这个页面上

    var elm = document.querySelector('.kwd');
    nthSiblingElementByClass(elm, 5, 'pln'); // <span class=​"pln">​console​</span>​