JS-基础-DOM操作【节点操作-增删改,H5属性操作】

20 篇文章 4 订阅
订阅专栏

JS-基础-DOM操作【节点操作-增删改,H5属性操作】

1· H5自定义属性

  

<body>
    <div getTime="20" data-index="2" data-list-name="andy"></div>
    <script>
        var div = document.querySelector('div');
        // console.log(div.getTime);
        console.log(div.getAttribute('getTime'));
        div.setAttribute('data-time', 20);
        console.log(div.getAttribute('data-index'));
        console.log(div.getAttribute('data-list-name'));
        // h5新增的获取自定义属性的方法 它只能获取data-开头的
        // dataset 是一个集合里面存放了所有以data开头的自定义属性
        console.log(div.dataset);
        console.log(div.dataset.index);
        console.log(div.dataset['index']);
        // 如果自定义属性里面有多个-链接的单词,我们获取的时候采取 驼峰命名法
        console.log(div.dataset.listName);
        console.log(div.dataset['listName']);
    </script>
</body>

2·节点操作:页面中的所有内容都是节点。

3节点层级【父子兄层级关系】

 

 

<body>
    <!-- 节点的优点 -->
    <div>我是div</div>
    <span>我是span</span>
    <ul>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>
    </ul>
    <div class="demo">
        <div class="box">
            <span class="erweima">×</span>
        </div>
    </div>

    <script>
        // 1. 父节点 parentNode
        var erweima = document.querySelector('.erweima');
        // var box = document.querySelector('.box');
        // 得到的是离元素最近的父级节点(亲爸爸) 如果找不到父节点就返回为 null
        console.log(erweima.parentNode);
        console.log(erweima.parentNode.parentNode)
    </script>
</body>

4子节点【firstChild  lastChild】

 


<body>
    <!-- 节点的优点 -->
    <div>我是div</div>
    <span>我是span</span>
    <ul>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>

    </ul>
    <ol>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是liiii</li>
        <li>我是li</li>
    </ol>

    <div class="demo">
        <div class="box">
            <span class="erweima">×</span>
        </div>
    </div>

    <script>
        // DOM 提供的方法(API)获取
        var ul = document.querySelector('ul');
        var lis = ul.querySelectorAll('li');
        // 1. 子节点  childNodes 所有的子节点 包含 元素节点 文本节点等等
        console.log(ul.childNodes);
        console.log(ul.childNodes[0].nodeType);
        console.log(ul.childNodes[1].nodeType);
        // 2. children 获取所有的子元素节点 也是我们实际开发常用的
        console.log(ul.children);

        var od=document.querySelector('ol')
        console.log(od.children[2])
    </script>
</body>
<body>
    <ol>
        <li>我是li1</li>
        <li>我是li2</li>
        <li>我是li3</li>
        <li>我是li4</li>
        <li>我是li5</li>
    </ol>
    <script>
        var ol = document.querySelector('ol');
        // 1. firstChild 第一个子节点 不管是文本节点还是元素节点
        console.log(ol.firstChild);
        console.log(ol.lastChild);
        // 2. firstElementChild 返回第一个子元素节点 ie9才支持
        console.log(ol.firstElementChild);
        console.log(ol.lastElementChild);
        // 3. 实际开发的写法  既没有兼容性问题又返回第一个子元素
        console.log(ol.children[0]);
        console.log(ol.children[ol.children.length - 1]);
    </script>
</body>

新浪下拉菜单案例

<body>
    <ul class="nav">
        <li>
            <a href="#">微博</a>
            <ul>
                <li>
                    <a href="">私信</a>
                </li>
                <li>
                    <a href="">评论</a>
                </li>
                <li>
                    <a href="">@我</a>
                </li>
            </ul>
        </li>
        <li>
            <a href="#">微博</a>
            <ul>
                <li>
                    <a href="">私信</a>
                </li>
                <li>
                    <a href="">评论</a>
                </li>
                <li>
                    <a href="">@我</a>
                </li>
            </ul>
        </li>
        <li>
            <a href="#">微博</a>
            <ul>
                <li>
                    <a href="">私信</a>
                </li>
                <li>
                    <a href="">评论</a>
                </li>
                <li>
                    <a href="">@我</a>
                </li>
            </ul>
        </li>
        <li>
            <a href="#">微博</a>
            <ul>
                <li>
                    <a href="">私信</a>
                </li>
                <li>
                    <a href="">评论</a>
                </li>
                <li>
                    <a href="">@我</a>
                </li>
            </ul>
        </li>
    </ul>
    <script>
        // 1. 获取元素
        var nav = document.querySelector('.nav');
        var lis = nav.children; // 得到4个小li
        // 2.循环注册事件
        for (var i = 0; i < lis.length; i++) {
            lis[i].onmouseover = function() {
                // 这里的children[1]是指大li中的第二个元素
                this.children[1].style.display = 'block';
            }
            lis[i].onmouseout = function() {
                this.children[1].style.display = 'none';
            }
        }
      
    </script>
</body>

5兄弟节点

<body>
    <p>hehe</p>
    <div>我是div</div>
    <span>我是span</span>
    <script>
        var div = document.querySelector('div');
        // 1.nextSibling 下一个兄弟节点 包含元素节点或者 文本节点等等
        console.log(div.nextSibling);
        console.log(div.previousSibling);
        // 2. nextElementSibling 得到下一个兄弟元素节点
        console.log(div.nextElementSibling);
        console.log(div.previousElementSibling);
    </script>
</body>

6创建和添加节点

 创建节点

 添加节点

 

 

<body>
    <ul>
        <li>123</li>
    </ul>
    <script>
        // 1. 创建节点元素节点
        var li = document.createElement('li');
        // 2. 添加节点 node.appendChild(child)  node 父级  child 是子级 后面追加元素  类似于数组中的push
        var ul = document.querySelector('ul');
        ul.appendChild(li);
        // 3. 添加节点 node.insertBefore(child, 指定元素);
        var lili = document.createElement('li');
        ul.insertBefore(lili, ul.children[0]);
        // 4. 我们想要页面添加一个新的元素 : 1. 创建元素 2. 添加元素
        var p=document.createElement('p');
        ul.insertBefore(p,ul.children[0])
    </script>
</body>

 7简单版留言板

<body>
    <textarea name="" id=""></textarea>
    <button>发布</button>
    <ul>

    </ul>
    <script>
        // 1. 获取元素
        var btn = document.querySelector('button');
        var text = document.querySelector('textarea');
        var ul = document.querySelector('ul');
        // 2. 注册事件
        btn.onclick = function() {
            if (text.value == '') {
                alert('您没有输入内容');
                return false;
            } else {
                // console.log(text.value);
                // (1) 创建元素
                var li = document.createElement('li');
                // 先有li 才能赋值
                li.innerHTML = text.value;
                // (2) 添加元素
                // ul.appendChild(li);
                ul.insertBefore(li, ul.children[0]);
            }
        }       
    </script>
</body>

 

H5自定义属性 节点操作
m0_61700036的博客
11-26 769
目录 一、自定义属性 1. 设置H5自定义属性 2. 获取H5自定义属性 二、节点操作 1、为什么要进行节点操作 2、节点概述 3、节点层级 (1)父级节点 (2)子节点 (3)兄弟节点 4、创建节点 (1)创建节点 (2)添加节点 (3)删除节点 (4)复制节点(克隆节点) (5)三种动态创建元素的区别 一、自定义属性 自定义属性目的:是为了保存并使用数据。有些数据可以保存到页面中而不用保存到数据库中。 自定义属性获取是通过getAttribute(‘属性...
H5新增属性
m0_68590134的博客
03-15 43
【代码】H5新增属性
H5新增属性及标签
热门推荐
yanyihan16的博客
05-23 1万+
H5标签变化 目录 新增的语义化标签 结构标签(语义化标签) 表单标签 媒体标签 其他标签 删除废弃的标签 H5属性变化 表单属性 新增的语义化标签 一:结构标签(语义化标签) 1.section。section标签定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。 2.article。article标签装载显示一个独立的文章内容。还可以嵌套,则内层的...
H5-JS动态变对象的键值
lieuly的博客
10-30 311
<h1 id="h5-js动态变对象的键值">H5-JS动态变对象的键值</h1> <p>1.</p> <pre><code class="language-javascript">let lab
Javascript标准DOM_Range操作 - 百度文库.doc
07-02
Javascript标准DOM_Range操作 - 百度文库.doc
DOM下的节点属性操作小结
12-11
属性: 1 .nodeName 节点名称,相当于tagName.属性节点返回属性名,文本节点返回#text。nodeName,是只读的。 2 .nodeType 值:1,元素节点;2,属性节点;3,文本节点。nodeType是只读的。 3 .nodeValue 返回一个...
JavaScript 节点操作 以及DOMDocument属性和方法
10-30
JavaScript中的节点操作DOMDocument对象是Web开发中的基础概念,它们是处理和操作HTML或XML文档的核心工具。DOM(文档对象模型)是一种标准,它允许程序和脚本动态更新、添加、删除和变任何HTML或XML文档的结构...
JS实现的DOM插入节点操作示例
11-28
本文实例讲述了JS实现的DOM插入节点操作。分享给大家供大家参考,具体如下: 一 介绍 插入节点通过使用insertBefore()方法来实现。 insertBefore()方法将在另一个子节点前插入新的子节点。 obj.insertBefore(new,ref...
JavaScript 动态网页实例 - DOM中的节点操作.rar
最新发布
05-08
DOM是 Document Object Model的缩写,由W3C进行标准化。文档对象模型(DOM)是一个基础性概念,主要涉及网页页面元素...介绍DOM中的节点操作,主要包括:节点插入与追加、节点复制、节点删除与替换、修节点内容等知识。
通过jsHTML变元素
lyhh5的博客
08-24 958
运用jsHTML变元素 比较常用的创建方法和增加方法: createElement()                         创建元素节点对象 appendChild()         ...
H5新增标签、属性
t1220130004的博客
12-04 2680
1、常用新语义化标签:用法类似标签,增加了代码的可读性,用于区分页面结构。 (1)、标签,定义文档的头部区域 (2)、标签,定义导航链接的部分 (3)、标签,定义section或document的页脚 (4)、,定义页面独立的内容区域 (5)、
JavaScript 插入Dom节点
weixin_47556601的博客
02-15 4300
大家好,今天我们来分享JavaScript 插入Dom节点 首先我们要知道, 不管我们对Dom节点进行什么样的操作,都必须先获取这个节点,假如说,这个dom节点是空的,我们可以通过innerHTML就可以增加一个元素,假如这个dom节点不存在,那这样做就不行了,否则会造成覆盖(就是会将原先的数据掉) 写源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">
H5新增获取元素的Dom方法以及类名操作
weixin_42116120的博客
06-22 858
新增获取元素方法: document.querySelector(" “);单个元素获取 document.querySelectorAll(” "); 多个元素获取 <html> <body> <div class = "box box1">box1</div> <div class = "box box2">box2</div> <div class = "box box3">box3<
H5新增API和操作DOM
weixin_30443895的博客
07-19 288
博客原文:https://dobinspark.com.cn/ H5-dom扩展 获取元素 document.getElementsByClassName ('class'); //通过类名获取元素,以伪数组形式存在。 document.querySelector('selector'); //通过CSS选择器获取元素,符合匹配条件的第1个元素。 document.querySel...
JS动态添加h5代码
kururunga的博客
05-13 1548
这样实现的
H5+js简单增删
QQ849410011的博客
04-19 2889
&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&gt; &lt;script type="text/javascript" src="../js/jquery-1.8.2.min.js" &
js 动态添加 dom 节点添加动画
唐僧的专栏
08-17 2746
项目背景:uniapp h5应用,为了提示用户下载,这里有个 提示下载的dom, 本想来想在 每个 tabbar 中添加(一共添加四个);但是想 尝试换种玩法 如下: 效果如下: 直接上代码: function showDownloadTisp() { console.log('--------------------------->showDownloadTisp') // #ifdef H5 const parent = document.querySelector(.
H5进行动态添加元素,删除元素
黑蛋丶的博客
07-06 1万+
H5进行利用js进行动态添加数据 其中最主要的是进行ID的赋值操作,每次添加相对应的ID需要进行加1, 在删除时,通过ID除过来相关的ID进行删除 还有就是删除最后一个添加的元素时,再次追加时的ID判断 这里使用的方式如下: 在删除元素之后,查询DIV下追加的共同元素的个数,然后取最后一个ID,在其后进行追加相关的元素 具体实现如下:<div class="systemList">
element-plus el-table 删除row dom 节点
03-31
在 Element Plus 的 el-table 组件中,删除某一行的 DOM 节点可以使用以下步骤: 1. 获取该行的 index 或者 rowKey。 2. 使用 `this.$refs.table.remove()` 方法来删除该行,该方法需要传入两个参数: - 第一个参数是要删除行的 index 或者 rowKey。 - 第二个参数是一个回调函数,该函数会在删除完成后调用。 ```js // 获取要删除行的 index 或者 rowKey const index = this.tableData.findIndex(item => item.id === id); const rowKey = this.tableData[index].rowKey; // 删除该行 this.$refs.table.remove(index, () => { console.log(`row with index ${index} or rowKey ${rowKey} is removed.`); }); ``` 3. 在删除完成后,可以根据需要更新数据源 `tableData`。 注意:在使用 `remove()` 方法时,如果该行的数据源中有 `children` 属性,则该行的子节点也会被删除。如果只想删除该行本身而不删除其子节点,则需要先将其子节点的 `parent` 属性设置为 `null`。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • JS截取字符串三种方法 3770
  • Vue项目导入vant组件报错,Can‘t resolve ‘vant-green‘ 1543
  • uniApp我遇到的报错:ReferenceError: onLoad is not defined,主要是导入问题! 1389
  • JS的五种数据类型以及转换方法 1045
  • JS类对象中的继承,关键字super 930

分类专栏

  • vue3 1篇
  • 解决 4篇
  • VueP 1篇
  • 问题 2篇
  • 汇编 3篇
  • js 20篇
  • CSS 1篇
  • JS面试 1篇

最新评论

  • vue3的eslint + prettier问题,解决了

    CSDN-Ada助手: 推荐 Vue入门 技能树:https://edu.csdn.net/skill/vue?utm_source=AI_act_vue

  • js数组去重的三种方法

    小菜鸡a: 对我很有帮助

  • js数组去重的三种方法

    安北北: 你有收获就很nice

  • js数组去重的三种方法

    前端大斗师: 大佬写的太好了

大家在看

  • python+flask计算机毕业设计+Mybatis的医生在线诊所平台noyhu9(程序+开题+论文)
  • Java程序之可爱的小兔兔
  • Java程序之让气球上升 77
  • 中国地质大学许少辉著《乡村振兴战略下传统村落文化旅游设计》图书馆荐购辉少许 1757
  • OpenMv与STM32通信(数字识别)

最新文章

  • vue3的eslint + prettier问题,解决了
  • 解决webpack的npm i和npm start报错的详细步骤
  • JS基础——API之动画
2024年1篇
2023年10篇
2022年18篇
2021年7篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司广州网站制作设计大浪seo网站推广观澜企业网站设计龙华网站优化按天收费罗湖关键词按天扣费荷坳网页制作吉祥模板推广松岗企业网站改版横岗seo网站优化罗湖网站设计模板坪山关键词按天计费平湖seo排名东莞网站优化广州外贸网站建设龙岗建网站大鹏关键词按天计费横岗网站优化按天计费坂田SEO按天扣费观澜网站关键词优化吉祥营销型网站建设光明百度网站优化深圳企业网站设计吉祥SEO按天收费坪地网站制作设计布吉网站排名优化坑梓网络推广布吉百度seo广州网站建设沙井建网站福永关键词按天收费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化