登录  /  注册
博主信息
博文 39
粉丝 2
评论 2
访问量 49216
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
DOM操作与实战案例-2018年9月14号
fighting的博客
原创
775人浏览过

                                                                      DOM操作与实战案例

                                                     时间:2018年9月14号                   天气:台风天

1. 编程:实例演示 id,class,标签和css选择器获取元素的方法

id通过getElementByID(),class通过getELementsByClassName(),Tag通过getElementsByTagName(),css选择器通过querySelectorAll()与querySelecttor().

id:

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>根据id选择元素</title>
    <style>
        ul{
            margin: 0;
            padding: 0;
            text-decoration: none;
        }
        li{
            display: block;
            float: left;
            margin-left: 10px;
            padding: 10px;
            border: 1px solid black;
            border-radius: 50%;
            color: #636363;
            font-size: 1rem;
        }
    </style>
</head>
<body>
<ul id="lists">
    <li id="item1">01</li>
    <li id="02">02</li>
    <li id="item2">03</li>
    <li id="04">04</li>
    <li id="item3">05</li>
</ul>
<script>
    //获取元素
   let item1 = document.getElementById('item1');
   let item2 = document.getElementById('item2');
   let item3 = document.getElementById('item3');
   //使用元素
    item1.style.backgroundColor = 'red';
    item2.style.backgroundColor = 'coral';
    item3.style.backgroundColor = 'blue';
    //动脑子想想怎么简化操作
    function getElements() {
        let Elements = {};
        for (let i=0;i<arguments.length;i++){
            let id = arguments[i];
            let  get =document.getElementById(id);
            if (get ===null){
                throw  new Error('该元素不存在'+id);
            }
            Elements[id] = get;
        }
        return Elements;
    }
    let elt = getElements('02','04');
    console.log(elt);

    // let json = JSON.parse(elt);
   //   let clor  =json.02;
  //    clor.style.backgroundColor ='green';
     //json.04.style.backgroundColor ='yellow';
    // for (let key in elt){
    //     elt[key].style.backgroundColor='lightgreen';
    // }
    elt['02'].style.backgroundColor='lightgreen';
    elt['04'].style.backgroundColor='yellow';

   // elt.style.backgroundColor='green';
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例



class:

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>通过class属性来获取元素</title>
</head>
<style>
    .container{
        width: 450px;
        height: 450px;
        overflow: hidden;
        /*border: 1px solid red;*/
        /*background-color: whitesmoke;*/
        box-shadow: 2px 2px 2px black;
        margin: auto;
        position: relative;
     }
    .first{
    width:150px;
    height:150px;
    position: absolute;
    left: 150px;
    top:0px;

    }
    .two{
    width:150px;
    height:150px;
    position: absolute;
    left: 0px;
    top:150px;
    background-color:coral;
    }
    .third{
    width:150px;
    height:150px;
    position: absolute;
    left: 150px;
    top:150px;
    background-color:lightgreen;
    }
    .four{
    width:150px;
    height:150px;
    position: absolute;
    left: 300px;
    top:150px;
    background-color:lightblue;
    }
    .five{
    width:150px;
    height:150px;
    position: absolute;
    left: 150px;
    top:300px;
    background-color:lightpink;
    }

</style>
<body>
<div class="container">
    <div class="first"></div>
    <div class="two"></div>
    <div class="third"></div>
    <div class="four"></div>
    <div class="five"></div>
</div>
<script>
    let container = document.getElementsByClassName('container')[0];
    // console.log(container);
    container.style.backgroundColor ='wheat';
    let first = document.getElementsByClassName('first').item(0);
    first.style.backgroundColor = 'lime'
    let two = document.getElementsByClassName('two');
    two.item(0).style.backgroundColor = 'grey'
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

css选择器来获取元素

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用css选择器来获取元素</title>
</head>
<body>
<ul id="ul">
    <li class="red">列表项01</li>
    <li>列表项02</li>
    <li class="green">列表项03</li>
    <li class="green">列表项04</li>
    <li class="coral large">列表项05</li>
</ul>

<script>
    //我们选择页面元素的时候,大多使用css选择器来获取元素,例如
    // .red 获取 class="red"的元素,其实js也支持使用css选择器获取元素
    let lists = document.querySelectorAll('li');
    console.log(lists);     //返回节点列表数组,里面每个元素对应一个元素
    //可以使用
    lists[0].style.backgroundColor = 'coral';
    lists.item(1).style.backgroundColor = 'lightblue';

    //该方法还可以在元素上调用,这也根据标签和class类名获取元素是一样的
    let ul = document.querySelector('#ul'); // 获取满足条件的第一个元素
    console.log(ul);    // 只返回ul列表元素以及内部子元素
    let li = ul.querySelectorAll('.green');
    for (let i = 0; i < li.length; i++) {
        li[i].style.backgroundColor = 'green';
    }

</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

Tag标签名

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用标签名和name属性选择的快捷方式</title>
</head>
<body>
<img src="inc/1.jpg" alt="" name="pic">
<form action="" name="register">
    <input type="text" placeholder="用户名">
    <input type="password" placeholder="密码不少于8位">
    <button>提交</button>
</form>
<p><a href="http://www.php.cn" name="php">php中文网</a></p>


<script>
    //根据name标签名和name属性选择元素的快捷方式:仅适用于极少的几个,这是历史原因造成的
    // images: 所有的<img>元素 图像,数组, 有三种访问方式
    document.images[0].style.width = '200px';       // 1.标签索引
    document.images['pic'].style.width = '200px';   // 2.name 属性
    document.images.pic.style.width = '300px';      // 3.将name视为元素对象的属性进行访问

    // forms: 所有的<forms>元素 表单,数组
    document.forms[0].style.backgroundColor = 'lightgreen';
    document.forms['register'].style.backgroundColor = 'lightblue';
    document.forms.register.style.backgroundColor = 'red';
    document.forms.item(0).style.backgroundColor = 'lightgreen';  // 类数组可用item()方法获取某个元素

    //a 链接: 所有的<a>元素,NodeList 数组
    document.links[0].style.backgroundColor = 'yellow';
    document.links['php'].style.backgroundColor = 'red';
    document.links.php.style.backgroundColor = 'green';

    // body: <body>元素,总有定义,只有一个
    document.body.style.backgroundColor = 'wheat';

    // head: <head>元素,总有定义,不写会自动添加,只有一个
    let style = document.createElement('style');
    document.head.appendChild(style);

    // documentElement: <html>元素,总有定义,同样一个页面只有一个
    console.log(document.documentElement);

    // doctype: 文档类型,同样也只有一个
    console.log(document.doctype);




</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

2. 实战: 在线聊天机器人

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能在线***系统</title>
</head>
<style>
    .{
        margin: 0;
        padding: 0;
    }
    .main{
       background-image: url('../0913/inc/2.jpg');
        width: 450px;
        height: 650px;
        margin: 30px auto;
        color: #333333;
        box-shadow: 2px 2px 2px #000;


    }
    h2{
        text-align: center;
        color: #636363;
        padding-top:5px ;
    }
    .container{
        width: 400px;
        height: 500px;
        margin:0px auto;
        background-color: whitesmoke;
        padding: 0;
        overflow: hidden;
    }
    table{
        width: 450px;
        height: 100px;
        margin: auto;
    }
    ul{
        list-style-type: none;
    }

    textarea{
        resize: none;
        border: none;
    }
    button{
        line-height: 25px;
    }
    button:hover{
      cursor: pointer;
    }
</style>
<body>
<div class="main">
    <h2>在线***</h2>
    <div class="container">
        <div id="1" style="float: right"><p></p></div>
        <br><br><br>
        <div id="2" style="float: left"><p></p></div>
        <br><br><br>

    </div>
    <table>
        <tr>
            <td align="right"><textarea name="text"  cols="50" rows="4"></textarea></td>
            <td align="left"><button type="button">发送</button></td>
        </tr>
    </table>
</div>
</body>
</html>
<script>
    //获取元素
    let text =document.getElementsByName('text')[0];
    let div1 =document.getElementById('1');
    let div2 =document.getElementById('2');
    let btn = document.getElementsByTagName('button')[0];
    let num =0;
    //鼠标点击事件
    btn.onclick =function () {
        //alert(text.value);
        //获取用户提交的信息
        if (text.value.length === 0){
            alert('大佬,输点内容啊!!!');
            return false;
        }
        let userComment = text.value;
        //立即清空用户信息区
        text.value = '';
       let p =document.createElement('p');
   //    li.innerHTML =userComment;
       let userpic = '<img src="../0913/inc/lg.jpg" width="30px" style="border-radius:50%">';
       p.innerHTML =userComment  +' '+userpic;
       div1.appendChild(p);
       num +=1;

       //***自动回复内容
        setTimeout(function () {
            let info =[
                '真烦人,有话快说,别耽误我玩抖音',
                '除了退货,退款,咱们什么都可以聊',
                '说啥,张斌是傻逼吗?再说一遍',
                '在我方便的时候再回复你吧~~',
                '投诉我的人多了,你算老几~~~'
            ];
            let temp = info[Math.floor(Math.random()*3)];
            let kefuPic ='<img src="../0913/inc/4.jpg" width="30px" style="border-radius: 50%">';
            let reply =document.createElement('p');
            reply.innerHTML =kefuPic +' '+temp;
            div2.appendChild(reply);
            num +=1;
        },2000);
        if (num >10){
            div1.innerHTML ='';
            div2.innerHTML ='';
            num =0;
        }
    }
</script>

运行实例 »

点击 "运行实例" 按钮查看在线实例

本机运行图:

1.png







批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学