原生DOM操作两个栗子,关于折叠内容和批量删除

批量删除处理上次的全选事件

 <script>var delete=document.getElementById("btn_delete");
    delete.onclick=function() {
        var flag=window.confirm("你确定要删除吗?");
        if(flag==true) {
            var selNum = document.querySelectorAll("input.checkinfo[type=‘checkbox‘]");
            for(var i=selNum.length-1; i>=0;i--)  {
                if(selNum[i].checked == true)  {
                      var td=selNum[i].parentNode;
                      var tr=td.parentNode;
                      var trs=tr.parentNode;
                      trs.removeChild(tr);
                 }
            }
        }
    }
} </script>

折叠与展开内容

第一种是菜单栏与子菜单,主要是div设置display属性

    <table>
 <tr>
  <td>
      <div class="up" onclick=show("a0")><a href="#">菜单一</a></div>
      <div onmouseover=high() onmouseout=low() id="a0" style="display:none">
        <li class="innerClass">子菜单</li>
        <li class="innerClass">子菜单</li>
        <li class="innerClass">子菜单</li>
      </div>
  </td>
 </tr>
 <tr>
  <td>
    <div class="up" onclick=show("a1")><a href="#">菜单二</a></div>
    <div onmouseover=high() onmouseout=low() id="a1" style="display:none">
        <li class="innerClass">子菜单</li>
        <li class="innerClass">子菜单</li>
        <li class="innerClass">子菜单</li>
        <li class="innerClass">子菜单</li>
        <li class="innerClass">子菜单</li>
        <li class="innerClass">子菜单</li>
        <li class="innerClass">子菜单</li>
        <li class="innerClass">子菜单</li>
        <li class="innerClass">子菜单</li>
        <li class="innerClass">子菜单</li>
      </div>
  </td>
 </tr>

 </table>
 <script>
function show(div){
     if(document.all(div).style.display==‘none‘) {
         document.all(div).style.display=‘block‘;
     }
    else { document.all(div).style.display=‘none‘;
    }
 }
function high() {
if (event.srcElement.className=="innerClass") {
    event.srcElement.style.background="gray";
    event.srcElement.style.color="red";
    }
}
function low(){
if (event.srcElement.className=="innerClass"){
    event.srcElement.style.background="#C4BCB7"
    event.srcElement.style.color="green"
    }
}
 </script>

第二种情况是菜单项里嵌套一系列子菜单,如果按照前一种方式就会很麻烦了,在所有父菜单都要绑定事件,所以用DOM节点操作就很省事啦,(元素匹配的是加减图标)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
ul {
    list-style: none;
}
 ul a {
    text-decoration: none;
    color: #333333;
    padding: 0px ;
    background-color: #919AB0;
    background:  no-repeat 0 2px;
    }
 ul a:hover {
    color:white;
    text-decoration: none;
    background-color: #919AB0;
    background-position: 5px 100%;
}
    </style>
</head>
<body>
    <ul>
        <li>
            <img src="images/bt1.png" ><span class="Fliat"> <a href="#">父菜单</a></span>
                <ul>
                    <li><img src="images/bt1.png">
                        <span><a href="#">子菜单</a></span>
                            <ul>
                                <li><a href="#">孙菜单</a></li>
                                <li><a href="#">孙菜单</a></li>
                                <li><a href="#">孙菜单</a></li>
                                <li><a href="">孙菜单</a></li>
                                <li><a href="">孙菜单</a></li>
                            </ul>
                    </li>

                    <li>子菜单</li>
                </ul>
            </li>
        </ul>
 <script>
document.onclick=function(evt){
    var target=evt.target;
    if(target.matches("ul li img")) {
        var node=target.nextElementSibling.nextElementSibling;
        var display=node.style.display;
        if(display=="none"){
            node.style.display="block";
            target.setAttribute("src","images/bt1.png");
        } else{
            node.style.display="none";
            target.setAttribute("src","images/bt2.png");
        }
    }
}
 </script>
</body>
</html>
时间: 2025-01-02 11:24:32

原生DOM操作两个栗子,关于折叠内容和批量删除的相关文章

JavaScript常用原生DOM操作

最近,自己在投简历,找工作,在忙碌的复习当中,希望把有用的知识分享出去,是自己的成长,也可以给别人帮助. 今天给大家分享一些常用的原生的JavaScript DOM 操作. OK,那开始吧,那就开始吧O(∩_∩)O~~ 一.查看浏览器视口尺?   window.innerWidth/window.innerHeight(IE8以及IE8以下不能用  (′д` )-彡  )        document.documentElement.clientHeight/document.document

JS原生DOM操作总结

DOM的主要操作--增.删.改.查节点 (1) 查找节点 document.getElementById('div1') document.getElementsByName('uname') document.getElementsByTagName('span') document.getElementsByClassName('alert') document.querySelector('#div1') document.querySelectorAll('.alert'); (2) 操

DOM操作 、js获取id的内容 和修改原来的内容(innerHTML)

js获取id的内容(getElementById) 和修改原来的内容(innerHTML) 1.通过ID获取元素 学过HTML/CSS样式,都知道,网页由标签将信息组织起来,而标签的id属性值是唯一的,就像是每人有一个身份证号一样,只要通过身份证号就可以找到相对应的人.那么在网页中,我们通过id先找到标签,然后进行操作. 语法: document.getElementById(“id”)   看看下面代码: 结果:null或[object HTMLParagraphElement] 注:获取的元

Virtual DOM 真的比操作原生 DOM 快吗?

1. 原生 DOM 操作 vs. 通过框架封装操作. 这是一个性能 vs. 可维护性的取舍.框架的意义在于为你掩盖底层的 DOM 操作,让你用更声明式的方式来描述你的目的,从而让你的代码更容易维护.没有任何框架可以比纯手动的优化 DOM 操作更快,因为框架的 DOM 操作层需要应对任何上层 API 可能产生的操作,它的实现必须是普适的.针对任何一个 benchmark,我都可以写出比任何框架更快的手动优化,但是那有什么意义呢?在构建一个实际应用的时候,你难道为每一个地方都去做手动优化吗?出于可维

dom操作原生js巩固

原生js的dom操作巩固 前言:这玩意其实很简单,但是每次用的时候都有点含糊,故写个文章,每次忘得时候看一看 原生dom操作 1.创建dom元素:createElement(标签名) 2.删除dom元素:removeChild(标签名) 3.在什么元素后添加dom元素:元素.appendChild(标签名) 4.在什么元素前添加dom元素:元素.insertBefore(标签名) 5.替换dom元素:replace(插入的元素,被替换的元素) 6.获取父节点:parentNode 7.获取子节点

Jquery的dom操作与原生dom的转换

本片文章包含了 jquery常见dom操作. q与原生dom对象的区别与转换 伪数组对象的知识 如有错误,烦请指正. 增 以下方法共性:可以一次添加多个内容,内容可以是DOM对象.HTML string. jQuery对象 创建元素 var obj = $('<div class="test"><p><span>Done</span></p></div>'); 两种方法可以创建元素 直接写入html 传入一个原生d

认识JQuery,JQuery的优势、语法、多库冲突、JS原生对象和JQuery对象之间相互转换和DOM操作,常用的方法

(一)认识JQuery  JQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一套定义好的方法    JQuery的主旨:以更少的代码,实现更多的功能 (二)JQuery的优势 1)可以像CSS一样访问和操作DOM 2)修改CSS控制页面外观 3)简化JS代码操作 4)事件代理更加容易 5)动画效果使用方便 6) Ajax技术更加完美 7)大量的基于Jquery的插件 8)可以自定义扩展功能插件 (三)JQuery的语法 格式:$(selector).actio

PHP原生DOM对象操作XML&#39;代码&#39;

对于操作XML类型文件,PHP内置有一套DOM对象可以进行处理.对XML的操作,从创建.添加到修改.删除都可以使用DOM对象中的函数来进行. 创建 创建一个新的XML文件,并且写入一些数据到这个XML文件中. /* * 创建xml文件 */ $info = array( array('obj' => 'power','info' => 'power is shutdown'), array('obj' => 'memcache','info' => 'memcache used t

原生JavaScript常用的DOM操作

之前项目一直都是用JQuery或者Vue来做的,确实好用,毕竟帮我们解决了很多浏览器兼容问题,但是后面发现大公司面试题都是要原生Javascript来做,然后我就一脸懵逼哈哈哈,毕竟大公司需要的框架或者库好多都是公司内部自己构建的,所以说到头来还是要原生JavaScript,这里总结了一些原生js常用的dom操作函数. 一:节点关系 //元素的子元素都可以通过someNode下的childNodes对象来访问 var firstChild = someNode.firstChild; //获得第