我有一个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导致它。请帮帮我。
答案 0 :(得分:6)
来自jQuery文档:
我们可以在特定的迭代中打破$ .each()循环 回调函数返回false。返回非假是与a相同 在for循环中继续声明;它将立即跳到下一个 迭代。
您没有返回false,因此循环将继续。
答案 1 :(得分:0)
您是否尝试过警报而非返回?也许你的祖先不是“===”而只是“==”你的tree.text(currNode)?
答案 2 :(得分:0)
你必须返回'false'。否则,它将进入下一次迭代。