js第十天(DOM上)


前言

DOM是JavaScript三大组成部分的其中一部分,它向我们提供了可以操作HTML文档以及标签元素的能力,编程接口 可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。接下来,就让我们一起来学习DOM。


一、DOM是什么?

DOM:文档对象模型  document Object Model

作用:提供操作html文档,html标签元素的能力

document 文档对象

     window.document

 


 

二、属性和方法

1.获取标签元素的方法

    1)getElmentById('id名')          通过id名获取标签元素

     ====》得到唯一元素

    2)getElmentsByClassName('class名')         通过class名获取标签元素

     ===》得到一个类数组(伪数组)

类数组和数组Array的区别:

①类数组不能使用Array数组的常用方法           eg: push  , pop

②类数组可以遍历,可使用 [ ] 访问元素

       3)getElmentsByTagName('标签名')          通过标签名获取标签元素

       4)getElmentsByName('name属性')         通过name属性获取标签元素,多用于可以定义name属性的标签,eg:input   button

        5)querySelector 和 querySelectorAll

            querySelector(选择器)             querySelectorAll(选择器) 

querySelector 和 querySelectorAll的区别

①两者都是通过选择器获取标签元素

②querySelector 只找到满足条件的第一个(选择器同名时)

querySelectorAll  返回满足条件的所有元素,存储在一个类数组中

 


 

2.操作内容

     1)ele.innerHTML            获取内容

            ele.innerHTML = '新内容'            //设置标签内容

     2)ele.innerText               获取内容

innerHTML和innerText的区别

innerHTML 会解析代码后输出内容

innerText 不会解析代码,直接以纯文本形式显示内容

     3)value                表单元素

代码如下(示例): 

<body>
    <h2 id="title">元素一</h2>
    <input type="text" name="message" placeholder="请输入内容" value="rose">

    <script>
        function test1(){
            var h2Ele = document.querySelector('#title')
            h2Ele.innerHTML = '<h3>innerText设置的内容</h3>'  //输出innerText设置的内容
            h2Ele.innerText = '<h3>innerText设置的内容</h3>'  //输出<h3>innerText设置的内容</h3>
            console.log('内容 :',h2Ele.innerHTML);
        }
        // test1()
        function test2(){
            var inputEle = document.querySelector('input[name="message"]')
            // inputEle.value = 'jack'
            console.log( inputEle.value )
        }
        test2()
    </script>
</body>

使用规律:

操作非表单元素:innerText       和innerHTML

操作表单元素:value

 


 

3.操作CSS样式

使用js代码动态操作样式

      1)获取行内样式

<h2 style="color:red;"> 获取样式</h2>

①先获取标签           

var h2Ele =document.querySelector('h2')

②获取样式

var colorValue = h2Ele.style.color         //行内式

③设置样式

//更改h2文字大小为25px

h2Ele.style.fontSize='25px'            //注意:js操作样式名,样式名用驼峰命名   eg:font-size   ===> fontSize

获取样式:ele.style.样式名

设置样式:ele.style.样式名 =样式值

      2)设置类样式 

   语法:ele.className = 类名

注意:如果一个元素有多个类名,使用此方法,后面的类名会覆盖前面的内容这时可以使用下面这种方法

动态添加样式:

ele.classList.add('类名1')

ele.classList.add('类名2') 

动态移除指定样式:

ele.classList.remove('类名')

给元素设置类名

var div=document.quselect('div')

div.className ='test'         //给div添加类名为test

     3)获取非行间样式

      window.getComputeStyle(元素).样式名           //获取样式值

如果是获取颜色,单位为RGB4)操作属性

 代码如下(示例): 

样式部分:

<style>
			.d1 {
				width: 200px;
				height: 200px;
				background-color: skyblue;
			}
            .d2{
                text-align: center;
            }

            .d3{
                width: 200px;
				height: 200px;
				background-color: pink;
            }
		</style>

结构部分:

<h2 style="color: red;">操作样式</h2>
		<div>元素一</div>
        <h3 class="d3">元素二</h3>

        <p></p>

        <button onclick="getStyleTest()">获取style样式</button>
        <button onclick="setStyleTest()">设置style样式</button>

        <button onclick="setClassStyle()">设置class样式</button>
        <button onclick="getClassStyle()">获取非行间样式</button>
		<script>
            function getClassStyle(){
                var h3Ele = document.querySelector('h3')
                var w = window.getComputedStyle(h3Ele).width
                console.log('w :',w);
            }

            function setClassStyle(){
                var divEle = document.querySelector('div')
                // divEle.className = 'd1'
                // divEle.className = 'd2'
                divEle.classList.add('d1')
                divEle.classList.add('d2')
            }

            // 获取h2标签的行内样式
            function getStyleTest(){
                var h2Ele = document.querySelector('h2')
                var colorValue = h2Ele.style.color  //行内式

                var pEle = document.querySelector('p')
                pEle.innerHTML = colorValue
            }
            // 更改h2字体大小为24px  
            function setStyleTest(){
                var h2Ele = document.querySelector('h2')
                h2Ele.style.fontSize = '44px'  // js代码操作样式名, 样式名用驼峰命令 font-size  -> fontSize
                h2Ele.style.backgroundColor = 'skyblue'
            }



        </script>

 


 4.操作属性

 js代码动态获取属性或设置属性

①获取属性

ele.getAttribute(属性名)                //获取属性值  

或者

ele.属性名 

         

前者能获取我们自定义的属性以及元素自身特有的属性的属性值

后者只能获取元素自身特有的属性的属性值,不能获取我们自定义的属性的属性值

②设置属性

ele.SetAttribute(属性名,属性值)        //元素自身特有以及自定义的属性都可以设置

ele.属性名=属性值                          //设置元素自身特有的属性

③删除属性

ele.removeAttribute(属性名)

④自定义属性

data-属性名

eg:获取自定义属性值       ele.dataset.属性名

 代码如下(示例): 

<h2 id="title" class="d1" a="100" b="200">元素一</h2>
    <h3>元素二</h3>
    <a href="http://www.baidu.com">百度</a>
    <img src="./06练习岛上书店/images/11239.png" alt="图片">
    <img src="" alt="图片2">

    <!-- 自定义属性 -->
    <h4 data-index="1001" data-score="98">元素三</h4>

    <button onclick="getAttr()">获取属性</button>
    <button onclick="setAttr()">设置属性</button>
    <button onclick="removeAttr()">移除属性</button>
    <button onclick="getMyAttr()">获取自定义属性</button>

    <script>
        function getMyAttr(){
            var h4Ele = document.querySelector('h4')
            var index =  h4Ele.dataset.score
            console.log(index)
        }

        function removeAttr(){
            var h2Ele = document.querySelector('h2')  // 获取h2元素
            h2Ele.removeAttribute('a')
        }


        function setAttr(){
            var h3Ele = document.querySelector('h3')
            h3Ele.setAttribute('id','titl2')
            h3Ele.setAttribute('a','1000')

            var imgEle = document.querySelectorAll('img')[1]
            // imgEle.setAttribute('src','./06练习岛上书店/images/book.jpg')
            imgEle.src='./06练习岛上书店/images/book.jpg'
        }


        function getAttr(){
            var h2Ele = document.querySelector('h2')  // 获取h2元素
            var imgEle = document.querySelector('img')  // 获取img元素
            var idValue =  imgEle.getAttribute('src')  // 获取h2元素id属性值
            console.log(idValue)
            console.log(imgEle.src)
        }
    </script>

 


5.操作事件

绑定事件的两种方式:

①属性事件

②元素与事件行为分离

1.属性事件

 直接给元素添加onclick属性实现

2.元素和事件行为分离

 代码如下(示例):  

<button>按钮</button>
    <div>元素一</div>

    <script>
        var btn = document.querySelector('button')
        btn.onclick = function(){
            alert('绑定事件')
        }

        var divEle = document.querySelector('div')
        divEle.onclick = function(){
            divEle.innerHTML = '今天是周五'
        }
    </script>

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值