树形结构点击高亮简单实现

1、样式

这块我 是修改根据自定义属性data-id 找到的节点 修改里面div div 中span字体的颜色

    <style type="text/css">

    .custom-tree-item-clicked  div div span{
    	color:#FC9003;
    }

    </style>

2、js模块


var selectId =""; //定义全局变量 保存点击过后的树形节点
//点击事件中添加的方法

//根据自定义属性查找元素 
var  selectspan  = "div[data-id='"+data.data.id+"']";
var jsget    = document.querySelector(selectspan);
// 方法一: 移除样式 上一个选中的样式
//removeClass(selectId,"custom-tree-item-clicked");

//方法二:使用setAttribute
var classstrold =selectId.getAttribute("class");
var classstrnew  =classstrold.replace("custom-tree-item-clicked"," ");
selectId.setAttribute("class",classstrnew);

//改变为现在选中的
selectId=jsget;

//当前选中的添加样式
jsget.className = jsget.className  +"  custom-tree-item-clicked ";



//去除、class 样式 的 方法 可以用  document.getElementById("id").getAttribute("class").replace("类名"," ");
function removeClass(obj, cls){
	  var obj_class = ' '+obj.className+' ';//获取 class 内容, 并在首尾各加一个空格. ex) 'abc    bcd' -> ' abc    bcd '
	  obj_class = obj_class.replace(/(\s+)/gi, ' '),//将多余的空字符替换成一个空格. ex) ' abc    bcd ' -> ' abc bcd '
	  removed = obj_class.replace(' '+cls+' ', ' ');//在原来的 class 替换掉首尾加了空格的 class. ex) ' abc bcd ' -> 'bcd '
	  removed = removed.replace(/(^\s+)|(\s+$)/g, '');//去掉首尾空格. ex) 'bcd ' -> 'bcd'
	  obj.className = removed;//替换原来的 class.
	}	

涉及到的知识点:

1、根据自定义属性查找元素

var  nodediv = document.querySelector("span[data-id=222]")//根据自定义属性进行查找 。

querySelector() 方法返回文档中匹配指定 CSS 选择器的一个元素。

注意: querySelector() 方法仅仅返回匹配指定选择器的第一个元素。如果你需要返回所有的元素,请使用 querySelectorAll() 方法替代。

replace()方法“无效”的原因 。 replace()返回的是字符串。然后进行设置

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值