这是我的代码,它从jsTree复选框树列表中获取选项:
var level1, r = [];
for (i = 0, j = data.selected.length; i < j; i++) {
r[0] = data.instance.get_node(data.selected[i]).text.trim();
r[1] = data.instance.get_node(data.selected[i]).parents.length;
if(r[1] == 1) {
level1 += r[0] + ", ";
alert(level1);
}
}
上面的alert
包含undefined
以及复选框中的正确选项。知道为什么我在输出中未定义?
答案 0 :(得分:1)
问题在于,当您第一次尝试在此处使用level1 += r[0]+", ";
时,level1 = level1 + r[0]+", ";
未定义:
level1
这与:
相同undefined
问题是"undefined"
未定义第一次迭代,因此文本包含var level1 = "";
并连接它将#include <iostream>
int main()
{
const int charSize = 256;
char str[charSize];
scanf_s("%256s", str, charSize);
printf("%s\n", str);
}
连接为强制执行的字符串。将其初始化为空字符串:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div id="root"></div>
<h1>html</h1>
<script src="script.js"></script>
</body>
</html>
这样,当你访问它时,它将不会被定义。
答案 1 :(得分:0)
:此强>
var level1, r = [];
for (i = 0, j = data.selected.length; i < j; i++) {
r[0] = data.instance.get_node(data.selected[i]).text.trim();
r[1] = data.instance.get_node(data.selected[i]).parents.length;
if(r[1] == 1){
level1 += r[0]+", ";
alert(level1);
}
}
应该是
var level1 = '';
//Or leve1 = []; If you really need it as an array.
var r = [];
for (i = 0, j = data.selected.length; i < j; i++) {
r[0] = data.instance.get_node(data.selected[i]).text.trim();
r[1] = data.instance.get_node(data.selected[i]).parents.length;
if(r[1] === 1){
// level1[0] += r[0]+", "; If array.
level1 += r[0]+", ";
alert(level1);
// alert(level1[0]); If array.
}
}
level1
未定义,level1, r = []
生成r === []
和level1 === undefined
。
所以我建议你明确声明两个变量,如上面的代码块所示。
我还修复了比较运算符see here why