JavaScript中DOM元素对象

DOM document(html) object modle 。通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

document对象(DOM核心对象)

document 表示的是一个文档对象。

dom能用来干什么?

对html元素的样式(颜色、大小、位置等等)、内容、属性

来进行动态的改变和操作。

通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

  • JavaScript 能够改变页面中的所有 HTML 元素

  • JavaScript 能够改变页面中的所有 HTML 属性

  • JavaScript 能够改变页面中的所有 CSS 样式

  • JavaScript 能够对页面中的所有事件做出反应

1.1.1 DOM元素对象

DOM 元素(节点)

1.1.1 .1 创建节点

createElement() 方法通过指定名称创建一个元素

document.createElement(nodename)

 参数

 var h1=document.createElement('h1')
    var p=document.createElement('p')
    
     document.body.appendChild(h1)
         document.body.appendChild(p)

 预览:

创建文本节点

语法

document.createTextNode(text)

 参数

 //创建dom节点
    var h1=document.createElement('h1')
    var p=document.createElement('p')
    //创建文本节点
    var ht1=document.createTextNode('小明同学')
    var pt1=document.createTextNode('下午好')
     //向body中添加dom节点
    document.body.appendChild(h1)
    h1.appendChild(ht1);
    document.body.appendChild(p)
    p.appendChild(pt1)

 预览:

1.1.1 .2 添加节点

appendChild() 方法可向节点的子节点列表的末尾添加新的子节点。

语法

node.appendChild(node)

 参数

编写一个函数,实现功能:单击按钮创建button元素

  //单击按钮创建button元素
        var btn=document.querySelector('#btn')
        console.log(btn);
        btn.onclick=function(){
            //创建dom节点
            var mybtn=document.createElement('button')
            var btntext=document.createTextNode('我是按钮')
            document.body.appendChild(mybtn)
            mybtn.appendChild(btntext)
           

        }

 预览:

通过遍历的形式,去 创建节点,添加节点

var ul=document.createElement('ul')
       //向无序列表中添加10个列表项
       for(var i=1;i<=10;i++){
           //在遍历的过程中,每次让其生成1个li并且把li追加到ul中
           var li=document.createElement('li')
           var litext=document.createTextNode(`我是第${i}列表项`)
           li.appendChild(litext)
           ul.appendChild(li)
       }
       document.body.appendChild(ul)

 预览:

向已有的子节点前插入新子节点

insertBefore() 方法可在已有的子节点前插入一个新的子节点。

语法

node.insertBefore(newnode,existingnode)

 参数

向已有的子节点前插入新子节点

//向已有的子节点前插入新的子节点
    //1抓取元素
    var box =document.querySelector('#box')
    var h1=document.querySelector("#h1")
    console.log(box,h1);
    //创建dom节点
    var para=document.createElement('p')
    var ptext=document.createTextNode('我是段落标签')
    para.appendChild(ptext)
    //添加节点
    box.insertBefore(para,h1)

 预览:

1.1.1.3 删除已有节点

removeChild() 方法可从子节点列表中删除某个节点。

如删除成功,此方法可返回被删除的节点,如失败,则返回 NULL。

语法

node.removeChild(node)

 参数

删除已有节点(已有html元素)

 <div id="box">
        <h1 id="h1">我是标题1</h1>
        <h2>我是标题2</h2>
    </div>
    <button id="btn">删除</button>

 

var btn=document.querySelector('#btn')
        btn.onclick=function(){
            //抓取元素
            var box=document.querySelector('#box')
            var h1=document.querySelector('#h1')
            //删除
            box.removeChild(h1)
        }

预览:

1.1.1.4 替换节点

replaceChild() 方法可将某个子节点替换为另一个。替换 节点HTML 元素

语法

node.replaceChild(newnode,oldnode)

 参数

把盒子中的h1标签,替换成我们动态创建的p段落标签

   <div id="box">
        <h1 id="h1">我是标题1</h1>
        <h2>我是标题2</h2>
    </div>
    <button id="btn">替换</button>

 

<script>
        var btn=document.querySelector('#btn')
        btn.onclick=function(){
            //抓取元素
            var box=document.querySelector('#box')
            var h1=document.querySelector('#h1')
             // 创建节点
        var para = document.createElement('p')
        var t = document.createTextNode('我是段落标签')
        para.appendChild(t)
            //替换节点
            box.replaceChild(para,h1)
        }

    </script>

 预览:

1.1.1.5 子节点集合

childNodes 属性返回包含被选节点的子节点的 NodeList。

语法

element.childNodes

 技术细节

获取 body 元素的子节点集合

var c=document.body.childNodes;
            console.log(c);

 

<div id="box"></div>

    <button id="btn" onclick="look()">点击,看一看</button>
<script>
   // 单击“按钮”获取有关身体元素的子节点的信息 (看节点名称)
        // 注意: 空格内元素看作是文本,文本是节点。
        var btn=document.querySelector('#btn')
        var box=document.getElementById('box')
        btn.onclick=function(){

            var c=document.body.childNodes;
            console.log(c);
            //定义临时变量
            var text='';
            //遍历
            for(var i=0;i<c.length;i++){
                  text +=c[i].nodeName+'<br>'
            }
            console.log(text);
            box.innerHTML=text;
           
        }
   
    </script>

 预览:

从子节点列表中删除某个节点 ,把无序列表中的第一项删掉。

 <ul id="myList"><li>Coffee</li><li>Tea</li><li>Milk</li></ul>
    <p id="demo">单击按钮移除列表的第一项</p>
    <button id="btn">删除</button>

 

 <script>
        //从子节点列表中删除某个节点 ,把无序列表中的第一项删掉。
       var btn=document.querySelector('#btn')
       btn.onclick=function(){
           var myList=document.querySelector('#myList')
           //移除节点
           myList.removeChild(myList.childNodes[0])
       }
    </script>

预览:

1.1.2 DOM对象的常用属性

HTML DOM 允许 JavaScript 改变 HTML 元素的样式。

style.property=新样式

改变 HTML 样式

如需改变 HTML 元素的样式,请使用这个语法:

document.getElementById(id).style.property=新样式

 改变文档主体的背景色,文本颜色,字体大小。

 <p id="pt">
        我是小鱼
    </p>
    <button id="btn">点击</button>

 

  <script>
        //改变文档主体的背景色,文本颜色,字体大小。
        var btn=document.querySelector('#btn')
        btn.onclick=function(){
         document.body.style.backgroundColor='black'
               document.body.style.color='yellow'

        }
          console.log(document.URL);
            //获取得到字符集
            console.log(document.charset);
           
           
           
    </script>

预览:

document.title 返回或设置当前文档的标题

  <title>document</title>
</head>
<body>
    <script>
        setTimeout(()=>{
            document.title = '小余的个人技术博客';
        },3000)
    </script>
</body>

 

 预览:

document.bgColor 设置页面背景色

document.fgColor设置前景色(文本颜色)

 <p>
        我是小鱼
    </p>
    <button id="btn">点击</button>

 

<script>
        //改变文档主体的背景色,文本颜色,字体大小。
        var btn=document.querySelector('#btn')
        btn.onclick=function(){
            document.bgColor='black'
            document.fgColor='yellow'
            document.body.style.fontSize='50px'
        }
            console.log(document.URL);
            //获取得到字符集
            console.log(document.charset);
           
           
    </script>

 预览:

document.URL 得到浏览器的地址,设置URL属性从而在同一窗口打开另一网页

URL 属性可返回当前文档的 URL。

注意:

//下面这种写法是错误的。
document.URL = "https://www.baidu.com";
//你可以把 当前 文档的URL 用这个属性拿到,给其他地方去使用。但是你不能给他赋新值
console.log(document.URL)

 

document 表示的是一个文档对象,windows 表示一个窗口对象。

一个窗口下面可以有很多的document对象。每个document 都有 一个URL。

document.charset得到字符集 例如 当前文档的字符编码集是 万国码UTF-8;或者是 简体中文gb2312

console.log(document.charset)

项目中常用的三个方法

classList .add() 在元素中添加一个或多个类名。

classList .remove() 移除元素中一个或多个类名。

classList.toggle() 在元素中切换类名。

document.getElementById("myDIV").classList.add("mystyle");

 

 <p id="pt">
        我是小鱼
    </p>
    <button id="btn">点击</button>
<style>
    .red{
        color:red;
    }
    .f30{
        font-size:30px;
    }
</style>

 

<script>
        //改变文档主体的背景色,文本颜色,字体大小。
        var btn=document.querySelector('#btn')
        btn.onclick=function(){
         var pt=document.querySelector('#pt');
         pt.classList.add('red')

        }
           
           
           
    </script>

预览:

 <script>
        //改变文档主体的背景色,文本颜色,字体大小。
        var btn=document.querySelector('#btn')
        btn.onclick=function(){
         var pt=document.querySelector('#pt');
         pt.classList.add('f30')

        }
           
           
           
    </script>

 预览:

 

 <script>
        //改变文档主体的背景色,文本颜色,字体大小。
        var btn=document.querySelector('#btn')
        btn.onclick=function(){
         var pt=document.querySelector('#pt');
          pt.classList.toggle('red');

        }
           
           
           
    </script>

预览:

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值