当前位置: 首页 > news >正文

从哪里设置网站关键词宿州保洁公司哪家好

从哪里设置网站关键词,宿州保洁公司哪家好,小程序微信定制开发,关于网页制作的毕业设计大家好,今天我要分享的是如何在树形结构的数据中,根据特定条件设置节点及其所有子节点的显示属性。在实际项目中,这种需求非常常见,特别是在需要动态展示和隐藏节点的情况下。下面我将通过一个具体的示例来讲解实现过程。 需求分析…

大家好,今天我要分享的是如何在树形结构的数据中,根据特定条件设置节点及其所有子节点的显示属性。在实际项目中,这种需求非常常见,特别是在需要动态展示和隐藏节点的情况下。下面我将通过一个具体的示例来讲解实现过程。

需求分析

假设我们有一个树形结构的数据,如下所示:

 const treeData = [{name: "父节点1",id: 1,children: [{name: "子节点1-1", id: 11, children: [{name: "酸菜", id: 111, children: [{ name: "豆芽", id: 1111, }]}, { name: "豌豆", id: 12, }]},{ name: "子节点1-2", id: 13 }]},{name: "父节点2",id: 2,children: [{ name: "子节点2-1", id: 22, },{name: "子节点2-2",id: 23,children: [{ name: "子节点2-2-1", id: 24 }]}]}];

我们的需求是:当输入一个文本时,找到所有name属性包含该文本的节点,并将这些节点及其所有子节点和所有父节点的show属性设置为true

实现步骤

  1. 初始化节点显示属性

    在开始遍历之前,我们需要将所有节点的show属性初始化为false。这可以通过递归遍历实现。

  2. 递归遍历树形结构

    我们编写一个递归函数traverse,用于遍历树形结构。当找到包含特定文本的节点时,我们需要将该节点及其所有子节点和所有父节点的show属性设置为true

  3. 设置子节点显示属性

    为了实现这一功能,我们添加了一个内部函数setChildrenTrue,该函数递归地将所有子节点的show属性设置为true

代码实现

以下是实现上述需求的完整代码:

function setSearchText(text) {// 初始化所有节点的show属性为falsefunction setFalse(node) {node.show = false;if (node.children) {node.children.forEach(child => setFalse(child));}}// 递归遍历树形结构并设置节点及其子节点和父节点的show属性function traverse(node, parent) {if (node.name.includes(text)) {node.show = true;parents.forEach(parent => {parent.show = true;});function setChildrenTrue(child) {child.show = true;if (child.children) {child.children.forEach(grandChild => setChildrenTrue(grandChild));}}if (node.children) {node.children.forEach(child => setChildrenTrue(child));}} else if (node.children) {node.children.forEach(child => traverse(child,[...parents, node]));}}// 遍历树之前先设置所有节点的show属性为falsetreeData.forEach(node => setFalse(node));// 从根节点开始遍历treeData.forEach(node => {traverse(node, []);});
}// 示例:设置包含"酸菜"的节点及其所有子节点和父节点的show属性为true
setSearchText("酸菜");console.log(treeData);

 用于树形节点过滤筛选

通过以上代码,我们成功实现了在树形结构数据中根据特定条件设置节点及其所有子节点的显示属性,通过遍历treeData,生成对应的ul和li,并根据show属性隐藏或显示,就能通过input输入框实现树结构的节点过滤啦

http://www.yayakq.cn/news/740793/

相关文章:

  • 做微淘要开通网站吗门户网站界面设计模板下载
  • wordpress建小说网站中文网站建设公司
  • 购物网站静态页面制作logo设计
  • 推广公司的网站网站建设企业网银e路通
  • 织梦网站怎么做投票深圳比较大的贸易进口公司
  • 做网站 流量怎么抓钱大型网站平台建设
  • 古镇镇建网站公司学校户网站建设方案
  • php网站怎么用mysql新建数据库实时热搜
  • 均安网站建设百度员工收入工资表
  • 毕业网站设计手机网站制作推广定制
  • 高端织梦html5网站模板 dedecms网络公司模板动漫制作专业
  • 做网站怎么设置背景网站建设需求量
  • 黄石规划建设局网站门户网站域名是什么意思
  • 关于icp备案信息中注销网站的通知国外vps国内vps
  • 网站二级栏目数量广州机械网站建设外包
  • 网站开发知识版权专业网站建设出售
  • 有没有什么网站免费做名片ps设计网站首页效果图
  • 口碑好的宜昌网站建设wordpress源码 优惠券
  • 手机上制作网站的软件市网站建设
  • 雪锐琴网站建设无锡设计网站找哪家
  • 可以搭建分站的网站桂林市天气预报15天准确
  • 凡科做网站给后台的吗全托管跨境电商平台有哪些
  • 建站快车代理商品牌形象设计公司
  • 网站中的图片展示功能该设计什么软文云
  • 利用c 做网站上海网站建设费用
  • 网站制作怎么赚钱合肥建设网站制作公司
  • 如何将自己做的网站推广出去安徽搜索引擎优化seo
  • 北京企业官网建站湖南住房和城乡建设网门户网站
  • 嘉定区网站建设建筑工程东莞网站建设
  • 萧山区建设局网站东莞东城网站建设