javascript - 为什么此警报包含未定义?

标签 javascript jquery jstree

这是我的代码,它从 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);
    }
}

上面的警报包含未定义以及复选框中的正确选择。知道为什么我在输出中未定义吗?

最佳答案

问题是,当您第一次尝试在此处使用 level1 时,它是未定义的:

level1 += r[0]+", ";

这与:

相同
level1 = level1 + r[0]+", ";

问题是第一次迭代时 level1 未定义,因此文本包含 undefined 并将其连接为字符串 "undefined" 如下它是被胁迫的。将其初始化为空字符串:

var level1 = "";

这样当你访问它时它就不会是未定义的。

关于javascript - 为什么此警报包含未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43852893/

相关文章:

javascript - 从下拉列表中获取选定值的问题

javascript - 使用 Google Universal Analytics 进行事件跟踪

c# - Jquery 延迟函数调用

javascript - 如何使用 AngularJS 在 TreeView 中添加静态值?

javascript - 如何使用带有 checkbox/html_data 插件的 jsTree 自动检查复选框?

javascript - 使用 jstree 格式化目录结果

javascript - 检查带有原型(prototype)的 native 定义函数

javascript - 在 JavaScript 中删除事件监听器

javascript - 在 JavaScript 'window' 对象中存储变量是使用该对象的正确方法吗?

javascript - 使用 jQuery 按数据属性进行选择 - 在 Chrome 中有效,在 Firefox 中无效。选择?