如何使用 jstree 获取每个已删除节点的父节点
How to get parents of each removed node using jstree?
我将我的工作示例复制到 jsfiddle http://jsfiddle.net/vvMaG/56/
<html>
<script type="text/javascript" src="../_lib/jquery.js"></script>
<script type="text/javascript" src="../_lib/jquery.hotkeys.js"></script>
<script type="text/javascript" src="../jquery.jstree.js"></script>
<div id="menu">
<input type="button" id="remove" value="remove" style="display:block; float:left;"/>
</div><br><br>
<div id="tree">
<ul>
<li><a>List item one</a></li>
<li><a>List item two with subitems:</a>
<ul>
<li><a>Subitem 1</a></li>
<li><a>Subitem 2</a></li>
</ul>
</li>
<li><a>Final list item</a>
<ul>
<li><a>Subitem 1</a></li>
<li><a>Subitem 2</a></li>
</ul>
</li>
</ul>
</div>
<script type="text/javascript">
$(function(){
$("#tree")
.jstree({
"plugins":["html_data","ui","themes","crrm"],
"themes" :{
"theme":"classic"
}
})
.bind("select_node.jstree", function (e, data) {
/*point 1 here*/
var parent=data.inst._get_parent(data.rslt.obj);
console.log(parent.find('a').first().text());
})
.bind("remove.jstree", function (e, data){
/*point 2 here*/
var parent=data.inst._get_parent(data.rslt.obj);
alert(parent.find('a').first().text());
/*point 3 here*/
data.rslt.obj.each(function () {
console.log(data.rslt.parent.children()[1].text);
});
})
});
$(function () {
$("#menu input").click(function (){
$("#tree").jstree(this.id);
})
});
</script>
</html>
当我选择一个节点时,它会正确获取父节点(第 1 点)。但是,我怀疑当节点被删除时,此方法不起作用,因为已删除的节点没有父节点(第 2 点),因为我收到parent.find is not a function
错误。
我知道如何获得父级的唯一方法是循环data.rslt.parent.children()
(第 3 点)。然而,显然这只会得到第一个父母,因为我正在经历rlst.parent
而不是data.rslt.obj
。当我选择要删除的多个节点时,我不知道有这样的data.rslt.object.parent
。有没有办法获取已删除节点的所有父节点?
谢谢
关于你的 jsfiddle :
不工作原因:时间戳:11/4/2013 1:32:36 PM
错误: 类型错误: this.data.html_data.original_container_html.find(...).addBack 不是 函数源文件: raw.github.com/vakata/jstree/v.pre1.0/jquery.jstree.js 行:4018
更改您的 jQuery 库版本。请参阅:jsfiddle.net/vvMaG/52
关于您的另一部分,如果没有元素的父级,它将生成错误。
时间戳:11/4/2013 1:42:03 PM 错误:类型错误:父级查找不是 函数源文件:http://fiddle.jshell.net/vvMaG/54/show/行:45
在您的函数中,
...
.bind("remove.jstree", function (e, data){
var parent=data.inst._get_parent(data.rslt.obj);
alert(parent.find('a').first().text());
data.rslt.obj.each(function () {
console.log(data.rslt.parent.children()[1].text);
});
})
...
尝试: parent().find('a') ( parent() IS a function, parent isnot)
- 在 D3js 强制图中添加和删除节点
- domparser删除节点不工作
- 如何使用vanillaJS将mp4视频插入到具有特定维度的html文档中,播放2秒,然后删除节点
- 删除节点的内联事件处理程序/属性
- Javascript .removeChild() 只删除节点
- 如何使用 jstree 获取每个已删除节点的父节点
- 从组中删除节点(对象、组等)
- 观察通过 chrome devtools 添加/删除节点时的 DOM 突变
- 从选择/组合 JavaScript 中删除节点
- 删除节点后的 JavaScript 事件处理程序
- 从 HTML 中删除节点
- E4x 删除节点,其中节点中的某些内容等于某些内容
- 单击“删除节点”并递减计数器
- d3.js强制布局拖动在删除节点后停止工作
- XML通过属性值JavaScript删除节点
- 如何遍历json树文件并删除节点
- 如何使用javascript从数组中删除节点
- 如何从选定的html中删除节点,而不将其从当前页面中删除
- 使用文本搜索并删除节点jquery
- 如果不包含任何文本,请删除节点