javascript - 在树视图和平面视图之间切换
问题描述
我试图在单击锚标记时在树视图和平面视图中显示 xml 数据。我已经使用 jstree 库来渲染树视图。最初,当加载数据并单击树视图时,我得到了树视图。当我切换到平面视图并再次尝试树视图时,数据仍显示在平面视图中,但正在调用实际的树视图函数。我也试过清除缓存,但没有用。关于如何在每个切换上正确显示它的任何想法?
HTML 代码
<div><a style="display: none;" onclick="treeView();" id="tree">Tree view</a>
<a style="display: none;" onclick="flatView();" id="flat">Flat view</a></div>
Javascript代码
function treeView(){
let parser = new DOMParser()
let xmlDoc = parser.parseFromString(data, "text/xml")
localStorage.removeItem('jstree');
$("#xml")
.jstree({
core: {
cache:"false",
data: xmlToJson(xmlDoc.documentElement),
},
})
document.getElementById('tree').style.display='none';
document.getElementById('flat').style.display='block';}
function xmlToJson(xmlNode) {
if (xmlNode.children.length == 0) {
return {
text:
`<span style="color: #005bff">${xmlNode.tagName} </span>` +
" : " +
xmlNode.textContent,
}
}
return {
text: xmlNode.tagName,
children: [...xmlNode.children].map((childNode) => xmlToJson(childNode)),
state: {
opened: true,
},
}
}
function flatView(){
document.getElementById('xml').textContent = data;
document.getElementById('flat').style.display='none';
document.getElementById('tree').style.display='block';
}
解决方案
推荐阅读
- c# - 试图在 FeeVoucher 表中查找费用违约者并将其与我的准入表数据进行比较..基于状态 = 在 FeeVoucher 表中支付
- ios - 在后台下载/上传完成后使用后台任务进行额外的 HTTP 请求是否是正确的方法?
- c++-cli - 在 SQL Server 数据库中存储 PDF 文件
- spring-batch - Spring Batch 如何使用 PathMatchingResourcePatternResolver 从文件夹及其所有子文件夹中读取所有 json 文件
- javascript - 在 electronjs 中处理和注册协议
- r - 多个 LM 模型返回相同的系数
- c# - 如何按需创建要在夜间运行的任务
- python - Python - 当json对象获得更高的数字时打印
- excel - 使用 VBScript.vbs 根据列名删除 Excel 列
- vagrant - 打包器 config.json 文件中的循环是否可能?