我正在使用jstree库来显示树。
在下面的代码中,我循环遍历树中的选定节点,并根据某些条件,我将变量'allow_edit'赋值为布尔值。
如果'allow_edit = false'.
我尝试使用标签并打破循环,但这似乎不起作用。我得到了未定义的标签。
loop1:
$j.each($j("#demo2").jstree("get_selected"), function(index, element) {
var selected_node_depth = parseInt($j(element).attr('node_depth'));
var allow_edit = false;
var array_first_filter = $j.grep(array_first, function(v) { return v[1] != "not detected";})
var array_second_filter = $j.grep(array_first_filter, function(v) { return v[3] > selected_node_depth;})
if (array_second_filter.length === 0 || array_second_filter.length == null)
{
allow_edit = true;
}
else{
alert("Confliction exists in your selected terms.");
allow_edit = false;
//break loop1; /** not working, getting undefined label **/
}
}
如果'allow_edit = false'
有关如何打破主循环的任何建议?非常感谢
答案 0 :(得分:2)
如果传递给.each()
的函数返回false
,则迭代将停止。
else {
allow_edit = false; // pointless since you're about to return ...
return false;
}
此外,作为编程风格的注释,表单的任何构造:
if (something) {
flag = true;
}
else {
flag = false;
}
可以简单地写成:
flag = something;
在JavaScript中,要强制 flag
为布尔值(true
或false
),您可以这样做:
flag = !!(something);
两个!
(逻辑“非”)运算符强制将表达式(“something”)作为布尔值计算,其规则与该表达式是{{1的test子句时使用的规则相同声明。