JS中的节点操作

节点的增删改查

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div1,.div2,.div3,.div4{
            width: 300px;
            height: 100px;
        }
        .div1{
            background-color: green;
        }
         .div2{
            background-color: yellow;
        }
         .div3{
            background-color: rebeccapurple;
        }
         .div4{
            background-color: deeppink;
        }
    </style>
</head>
<body>

<div class="div1">
    <button onclick="add()">add</button>
    hello div1
</div>
<div class="div2">
    <button onclick="del()">del</button>
    hello div2
</div>
<div class="div3">
    <button onclick="change()">change</button>
    <p>hello div3</p>
</div>
<div class="div4">hello div4</div>


<script>
###############增加节点######################
    function change() {
        var img=document.createElement("img");//<img src="">
        //img.setAttribute("src","meinv.jpg");
        img.src="meinv.jpg";

        var ele=document.getElementsByTagName("p")[0];
        var father=document.getElementsByClassName("div3")[0];

        father.replaceChild(img,ele)


    }
    ###############修改节点######################
    function add() {
        var ele=document.createElement("p");//<p></p>
        ele.innerHTML="<h1>hello p</h1>";
        //ele.innerText="<h1>hello p</h1>";
        ele.style.color="red";
        ele.style.fontSize="10px";
        var father=document.getElementsByClassName("div1")[0];
        father.appendChild(ele)

    }
###############删除节点######################
    function del() {
        var father=document.getElementsByClassName("div1")[0];
        var son=father.getElementsByTagName("p")[0];
        father.removeChild(son)
    }
</script>
</body>
</html>

利用JS绑定事件的两种方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<p onclick="func(this)">hello</p>

<div>hello DIV</div>

<script>
    // 绑定事件方式一
    function func(self) {
        console.log(self)
        alert(1234)
    }
    // 绑定事件方式二
    var ele=document.getElementsByTagName("div")[0]
    ele.onclick=function () {
        console.log(ele);
        console.log(this);
//        alert(6666)


    }
</script>
</body>
</html>

JS的class属性

<script>
    var ele=document.getElementsByTagName("div")[0];
      # class的名称
    console.log(ele.className);
          # 以列表返回class中值
    console.log(ele.classList[0]);
          # 以列表返回class中值
    console.log(ele.classList[1]);
    #  向列表中增加元素
    ele.classList.add("hide")
    console.log(ele.className);
</script>

Event对象:封装了事件的信息
可以用来阻止事件传播

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form action="" id="form1">
    <input type="text" name="username">
    <input type="submit" value="提交">
</form>


<script>
    var ele=document.getElementById("form1");
    ele.onsubmit=function (e) {
//        console.log("hello")
        alert(1234);
        // 方式一  返回false
         return false
        // 方式二  preventDefault函数
        //e.preventDefault()
    }
</script>

</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以通过给节点添加一个状态属性,然后根据状态属性来判断节点应该是展开还是收起状态。当点击节点时,切换节点的状态属性,并根据状态属性来进行相应的节点展开或收起操作。 以下是一个简单的实现示例: HTML结构: ``` <ul> <li class="node"> <span class="toggle">+</span> <span class="text">节点1</span> <ul class="children"> <li>子节点1</li> <li>子节点2</li> </ul> </li> <li class="node"> <span class="toggle">+</span> <span class="text">节点2</span> <ul class="children"> <li>子节点1</li> <li>子节点2</li> </ul> </li> </ul> ``` CSS样式: ``` ul { list-style: none; } .node .toggle { display: inline-block; width: 20px; text-align: center; cursor: pointer; } .node .text { margin-left: 5px; } .children { display: none; } ``` JS代码: ``` // 获取所有节点 var nodes = document.querySelectorAll('.node'); // 对每个节点进行处理 nodes.forEach(function(node) { // 获取节点的toggle和children元素 var toggle = node.querySelector('.toggle'); var children = node.querySelector('.children'); // 初始状态为收起 var isExpanded = false; // 点击toggle切换状态 toggle.addEventListener('click', function() { if (isExpanded) { children.style.display = 'none'; toggle.innerText = '+'; isExpanded = false; } else { children.style.display = 'block'; toggle.innerText = '-'; isExpanded = true; } }); }); ``` 这样,当用户点击节点的toggle时,就会切换节点的展开和收起状态,并相应地展开或收起节点的子节点

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值