我正在尝试验证包含两个jQuery回调循环的javascript函数内的元素。基于条件我想从内部jQuery循环返回true
/ false
,并且应该将其发送回javascript的调用方法。如果内循环的结果是true
,则循环应该停止运行。
if(validate(key)){
}
else{
}
function validate(key) {
$jquery.each(function(){
$jquery.each(function(){
if(){
return true;
}
else{
return false}
})
})
}
答案 0 :(得分:5)
我认为这正是您所寻找的,这将在满足true
条件时停止两个循环
function validate(key) {
var result = false;
$jquery.each(function(){
$jquery.each(function(){
if(){
result = true;
return false;//break inner loop
}
});
if(result)
return false; //break outer loop if we got true in inner
});
return result;
}
Demo fiddle 您可以打开控制台,看到在满足真实条件时循环停止
答案 1 :(得分:1)
function validate(key) {
var result;
$jquery.each(function() {
$jquery.each(function() {
if () {
result = true;
} else{
result = false
}
return false;
});
if (typeof result !== 'undefined') {
return false;
}
});
return result;
}
答案 2 :(得分:1)
jQuery docs给出了一个类似的例子。文档声明'你可以通过返回false来停止回调函数中的循环。'
所以听起来你需要扭转你的术语,并在你希望循环停止时返回false。
假设我们有一堆div
元素,其中嵌套了li
个元素。如果我们想要在内部循环到达具有特定内容的li
时停止它,我们可以这样做:
$( "div").each(function ( index, domEle) {
$( "li", domEle ).each(function ( index, domEle2) {
var areWeDone;
$( domEle2 ).css( "backgroundColor", "yellow" );
if ( $( domEle2 ).is(":contains('Here')") ) {
result = true;
return false;
} else {
result = false;
return true;
}
});
if (result == true) {
return false;
}
});
答案 3 :(得分:-1)
function validate(key) {
var result;
$jquery.each(function() {
$jquery.each(function() {
if () {
result = true;
} else{
result = false;
}
return result;
});
});
}