我有一个JavaScript函数,如下所示:

function nodeExists(text, ancestor, tree, generationCount) {

tree.findByText(text).each(function (index, element) {

    var gen = generationCount;
    var currNode = element;
    while (gen !== 1) { // 1: node itself

        currNode = tree.parent(currNode);
        gen--;
    }

    if (tree.text(currNode) === ancestor)
        return currNode; // Even if condition is met, control continues looping
})

return null;
//return ($.inArray(ancestor, gArr) !== -1) ? true : false;
}


即使tree.text(currNode) === ancestor是正确的,调试功能也不会从循环中退出。是Jquery .each导致它。请帮我。

最佳答案

从jQuery文档中:


  我们可以在特定的迭代中破坏$ .each()循环,方法是
  回调函数返回false。返回非假与
  在for循环中继续执行语句;它将立即跳到下一个
  迭代。


您不会返回false,因此循环将继续。

09-25 17:31