JavaScript_day02

1.DOM:        文档对象模型

        文档树:

文档一个网页
节点网页中的所有内容都是节点(标签,属性,文本,注释等)
元素网页中的标签
属性每个标签的属性

        DOM操作:

                a.获取元素(标签):

<body>
    <div id="box1">
        <span>hello</span>
        <input type="text" name="username">
        <p class="p">HTML</p>
        <p class="p">HTML</p>
        <p class="p">HTML</p>
    </div>
</body>

<script>
    // 通过id属性获取div标签
    var div = document.getElementById("box1");

    // 通过标签名获取元素
    var div2s = document.getElementsByTagName("div");// div2s是伪数组,调用该对象:div2[下标]

    // 通过name属性获取元素
    var inputs = document.getElementsByName('username');// inputs是伪数组
    
    // 通过类名(class)获取元素
    var ps = document.getElementsByClassName('p');// ps是伪数组

    // 通过选择器获取元素    
    // querySelector 和 querySelectorAll:前者返回一个匹配的元素,后者返回匹配到所有的元素

    var results=document.querySelectorAll('div p');//返回div标签下所有的p标签

    var results=document.querySelector('div p');//返回div标签下第一个p标签
    
</script>

                b.事件:        触发-响应机制

                        三要素:

                                事件源:触发事件的元素(标签)

                                事件类型:事件的触发方式(点击,移入等)

                                事件的处理程序:事件触发后要执行的代码(函数)

                        事件触发的三种写法:

    <!-- 第一种写法,所有JS代码都写在HTML中,不方便后期维护和更改 -->
    <input type="button" value="弹窗" onclick="alert('======')">
<body>
    <!-- 第二种写法,js代码分离,通过HTML绑定函数 -->
    <input type="button" value="通过HTML绑定函数" onclick="fn()">
</body>
    <script>
        function fn(){
            alert("通过HTML绑定函数");
        }
    </script>
<body>
    <!-- 第三种写法,看上去和js无关,其实是通过js代码绑定 -->
    <input type="button" value="JS弹窗" id="bn">
</body>
    <script>
        var btn = document.getElementById("bn");
        
        btn.onclick = function(){
            alert("js代码绑定");
        }
    </script>

                        常见的事件:

onclick当用户点击某个对象时调用的
onmouseover(onmouseenter)鼠标移到某元素之上
onmouseout(onmouseleave)鼠标从某元素移开
onblur元素失去焦点时触发
onchange

该事件在表单元素的内容改变时触发

<input>,<keygen>,<select>,<textarea>

onfocus元素获取焦点时触发
oninput元素获取用户输入时触发
onkeydown某个键盘按键被按下
onkeyup某个键盘按键被松开

                        :Event事件的绑定请看下一章

                        非表单元素的属性操作:        href、title、id、src、className width height

<body>
    <p id="text">我爱中国</p>
    <img src="images/tv.jpg" alt="" id="img">
    <button id="btn">点我</button>
</body>
    <script>
        //获取img标签
        var imgObj=document.getElementById('img');
        
        document.getElementById('btn').onclick=function(){
            // 给p标签添加class属性
            document.getElementById('text').className='text';
            // 更改img的图片地址
            imgObj.src='images/tv04.jpg';

            // 更改img的宽高,width,height 不加px
            // imgObj.width='200';
            // imgObj.height='200';
        };
    </script>

                        表单元素属性:value、type、disabled(表单元素属性的禁用)、selected、checked 

<body>
    <input type="text" id="text">

    //<input type="text" id="text" disabled> //禁用该输入框
</body>

<script>
    var input=document.getElementsByTagName("input");
    //通过js设置禁用
    input[0].disabled=true;
</script>

                         InnerText和InnerHTML:

                                innerText:主要是设置文本的,设置标签内容,是没有标签的效果的

                                innerHTML:主要的作用是在标签中设置新的html标签内容,是有标签效果的,也可以设置文本内容

<body>
    <p id="text">
        <span>一段文本</span>
    </p>

    <button id="getText">获取文本</button>
    <button id="setText">设置文本</button>
</body>

<script>
    //获取标签对象
    var text=document.getElementById('text');
    var getText=document.getElementById('getText');
    var setText=document.getElementById('setText');
    
    //获取文本内容
    text.onclick=function(){
        //alert(text.innerText);//一段文本
        alert(text.innerHTML);//<span>一段文本</span>
    }

    //设置文本内容
    setText.onclick=function(){
        var str=prompt('请输入文本');
        text.innerText=str;
    }
</script>

                        this:事件中表示当前元素的时候,使用this

<body>
   <p>1111</p>
   <p>2222</p>
   <p>3333</p>
   <p>4444</p>
   <p>5555</p> 
</body>
    <script>
        var p=document.getElementsByTagName("p");
        for(i=0;i<p.length;i++){
            p[i].onclick=function(){
                console.log(this.innerText)
            }
        }
    </script>

                        阻止a链接跳转:        阻止超链接的默认的跳转return false

<a href="www.baidu.com" id="a">百度</a>

<script>
    var a=document.getElementById("a");
    a.onclick=function(){
        return false;
    }
</script>

                        自定义属性:

<body>
    <div id="box1">
        <span>hello</span>
        <input type="text" name="username" id="input">
        <p class="p">HTML1</p>
    </div>
</body>
<script>
    
    var int = document.getElementById('input');

    // 设置属性
    int.setAttribute("属性的名字","属性的值");

    // 获取属性
    int.getAttribute("自定义属性的名字");

    // 移除属性
    int.removeAttribute("属性名称");

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值