Javascript 访问不包含所有子节点的选中节点的名称';名字
我使用的是jstree,我想访问HTML树中所有选中节点的ID和名称,以便将它们一起呈现在摘要中 这是我的代码: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("
$("#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());