Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问不包含所有子节点的选中节点的名称';名字_Javascript_Jquery_Jstree - Fatal编程技术网

Javascript 访问不包含所有子节点的选中节点的名称';名字

Javascript 访问不包含所有子节点的选中节点的名称';名字,javascript,jquery,jstree,Javascript,Jquery,Jstree,我使用的是jstree,我想访问HTML树中所有选中节点的ID和名称,以便将它们一起呈现在摘要中 这是我的代码: $("#summary").click(function () { var id_arr = new Array(); var text_arr = new Array(); $("#tree").jstree('get_checked').each(function (index) { id_arr.push($(this).attr("

我使用的是jstree,我想访问HTML树中所有选中节点的ID和名称,以便将它们一起呈现在摘要中

这是我的代码:

$("#summary").click(function () {

    var id_arr = new Array();
    var text_arr = new Array();

    $("#tree").jstree('get_checked').each(function (index) {
        id_arr.push($(this).attr("id"));
        text_arr.push($(this).text());
    });

    alert("Your Selection: " + id_arr.join() + " " + text_arr.join());

});
id_arr.push($(this.attr(“id”))
仅返回相关已检查节点的ID(同时检查父节点的所有子节点时,仅返回父节点ID),
text\u arr.push($(this).text())返回选中节点的所有名称(选中父节点的名称及其所有子节点的名称)

您是否知道如何仅返回选中父项的名称? 我已经考虑过向我的树节点添加一个隐藏的HTML属性(如节点123的名称),并使用.attr(“隐藏”)而不是访问节点.text(),但我认为一定有更好的解决方案

任何帮助都将不胜感激

更新:

树的HTML(我真正的树非常广泛,但我认为这一个可以):

    树叶树
      橡树
        白橡木 德国橡木
      石灰
    针叶树
      松树 云杉
示例:选择“橡木”时,返回值应仅为“345橡木”,而不是“345橡木-白橡木-德国橡木”

顺便说一下,我关于“隐藏”的想法不起作用,因为其中的元素是隐藏的。

我找到了一个解决方案:

text_arr.push($(this).find("a:first").text());
.text()的结果是一个字符串,包含所有匹配元素的组合文本;在这种情况下,$(this)引用的元素的li-标记之间包含的所有文本,包括子节点的文本


通过添加
.find(“a:first”).text()
字符串中只包含第一个a-标记之间的文本。

请将树的html添加到您的问题中。之后,编写正确的script@spring:我添加了一个具有相同格式的示例树的HTML。
text_arr.push($(this).find("a:first").text());