博客列表 >javascript元素获取_简单在线对话_2018年9月14日

javascript元素获取_简单在线对话_2018年9月14日

宋超的博客
宋超的博客原创
2018年09月18日 16:23:54637浏览

一、id,class,标签和css选择器获取元素的方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>id,class,标签和css选择器获取元素的方法</title>
</head>
<body>
<div id="item1">
    <ul class="class1">
        <li>列表项01</li>
        <li>列表项02</li>
        <li>列表项03</li>
        <li class="pink">列表项04</li>
        <li>列表项05</li>
    </ul>
</div>
<div id="item2">
    <ul class="class2">
        <li>列表项01</li>
        <li class="pink">列表项02</li>
        <li>列表项03</li>
        <li class="pink">列表项04</li>
        <li>列表项05</li>
    </ul>
</div>
<div id="item3">
    <ul class="class3">
        <li class="pink">列表项01</li>
        <li>列表项02</li>
        <li class="three">列表项03</li>
        <li>列表项04</li>
        <li class="five linwu">列表项05</li>
    </ul>
</div>
<script>
    //1.通过id来选择元素
    let item1 = document.getElementById('item1');
    // 设置选中元素背景
    item1.style.backgroundColor = 'red';

    //通过函数来获取所有id
    function getItem() { //参数是id字符串
        let getitems = {}; //保存获取到的DOM对象元素
        for(let i=0;i < arguments.length;i++) {//arguments 参数
            let id = arguments[i];
            let item = document.getElementById(id);//根据id字符串查找
            if(item === null){
                throw new Error ("没有这个元素"+id);//抛出异常
            }

            getitems[id] = item; //将获取到的元素保存到结果集中
        }
        return getitems;
    }

    //根据id获取页面指定元素,返回一个关联数组对象,键名就是id
    let items = getItem('item1','item2','item3');
    console.log(items);
    for(let key in items){
        items[key].style.backgroundColor='green';
    }

// 2.根据class来获取元素
let class1 = document.getElementsByClassName('class1')[0];
    console.log(class1);
    class1.style.backgroundColor='red';

    document.getElementsByClassName('class3').item(0)
        .getElementsByClassName('three')[0]
    .style.backgroundColor = 'cyan';

    let five = document.getElementsByClassName('five linwu')[0];
    console.log(five);
    five.style.backgroundColor = 'pink';


    //根据标签来选择
    let ul = document.getElementsByTagName('ul')[1];
    ul.style.backgroundColor = 'blue';
    let ul1 = document.getElementsByTagName('li').item(3);
    ul1.style.backgroundColor = 'wheat';

    //通过标签获取所有li元素
    let li_lists = document.getElementsByTagName('li');
    // console.log(document.getElementsByTagName('li').length);
    console.log(li_lists);
    for(let t=0;t<li_lists.length;t++){
        li_lists[t].style.backgroundColor = 'lightgreen';
    }

    //item()该方法也可用在元素对象中
    let ul3 = document.getElementsByTagName('ul').item((0));
    let item3 = ul3.getElementsByTagName('li').item(2);
    item3.style.backgroundColor = 'skyblue';


// 4.根据css选择器获取元素
    let lists1 = document.querySelectorAll('li');//根据标签选择器: li 获取
    console.log(lists1);
    lists1[0].style.backgroundColor = 'coral';
    lists1.item(1).style.backgroundColor = 'lightcoral';

    let ul5 = document.querySelector('ul'); //返回满足条件第一个
    // console.log(ul5);

    let ul6 = document.querySelectorAll('ul').item(2);
    ul6.style.backgroundColor = 'black';
    let li6 = ul6.querySelectorAll('li')[4];
    li6.style.backgroundColor = 'red';

    // 根据class .来选择
    let li7 = document.querySelectorAll('.pink');
    console.log(li7);
    for(let e=0;e<li7.length;e++){
        li7[e].style.backgroundColor='pink';
    }


</script>



</body>
</html>

运行实例 »

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

二、模拟智能在线对话系统实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>DOM实战:模拟智能在线***系统 </title>
    <style>
        div:nth-child(1){
            width:600px;
            min-height:550px;
            background: #efefef;
            margin: 30px auto;
            color: #444;
            box-shadow: 5px 5px 5px #e0e0e0;
        }
        h2{
            text-align: center;
            margin-bottom: -10px;
            color:#888 ;
            font-size:16px;
            padding-top: 20px;
        }
        div:nth-child(2){
            width: 500px;
            height: 300px;
            border: 1px solid #ccc;
            margin: 20px auto 10px;
            background: #fefefe;
            border-radius: 5px;
            overflow: hidden;
        }
        ul{
            list-style: none;
            line-height: 2em;
            overflow: hidden;
            padding: 15px;
        }
        div:nth-child(3){
            margin: 20px auto;
            width: 500px;
            text-align: center;
        }
        div:nth-child(3) button{
            width: 100px;
            height:35px;
            float: right;
        }
        button:hover{
            background:orange;
        }
        textarea{
            width: 500px;
            resize: none;
            border-radius: 5px;

        }
        img{
            border-radius: 50%;
        }
    </style>
</head>
<body>
<div>
    <h2>在线***</h2>
    <div>
        <ul>
            <li></li>
        </ul>
    </div>
    <div>
        <p><textarea name="text" cols="50" rows="5"></textarea> </p>
        <p><button type="button">发送</button></p>
    </div>

</div>

<script>
    //获取元素
    let btn = document.getElementsByTagName('button')[0];
    let text = document.getElementsByName('text')[0];
    let list = document.getElementsByTagName('ul')[0];
    let num = 0; //计数器

    //点击事件,获取用户输入的内容并发送到窗口
    btn.onclick = function() {
        //获取用户提交的内容
        if(text.value.length ===0) {
            alert('请输入内容');
            return false;
        }

        let userComment = text.value; //获取用户输入内容并保存
        text.value = '';
        //创建li
        let li = document.createElement('li');
        li.style = 'line-height: 40px;\n' +
            '    height: 40px;\n' +
            '    border-radius: 20px;\n' +
            '    width: 90%;\n' +
            '    margin-left: 50px;';

        //用户头像
        let userPic = '<img style="float: left; margin-left:-20px;" src="img/n.jpg" width="30" style="border-radius: 50%">';
        li.innerHTML = userPic+ '  '+'<span style="margin-left:30px;">'+userComment+'</span>';
        list.appendChild(li);  //将用户信息添加到聊天窗口中
        num +=1;

        //设置定时器, 自动回复
        setTimeout(function () {
            //自动回复信息
            let info = [
                '有什么事',
                '找我干嘛',
                '说明问题',
                '要买什么',
                '天天开心'
            ];

            let tmp = info[Math.floor(Math.random()*4)];
            let replay = document.createElement('li');
            replay.style = 'color: red;\n' +
                '    line-height: 40px;\n' +
                '    height: 40px;\n' +
                '    border-radius: 20px;\n' +
                '    width: 90%;\n' +
                '    margin-left: 50px;';
            let kfpic = '<img style="float: left;margin-left:-20px" src="img/g.jpg" width="30" style="border-radius: 50%" src="img/g.jpg" width="30" style="border-radius: 50%">';
            replay.innerHTML = kfpic + '  '+'<span style="color: red;padding-left:20px;">'+tmp+'</span>';
            list.appendChild(replay);
            num+=1;
            },2000);
//清屏
        if(num > 10){
            list.innerHTML = '';
            num = 0;
        }
    }
    //回车Enter 键绑定按钮
    document.onkeydown = function (event) {
        let e = event || window.event;
        if (e && e.keyCode == 13) { //回车键的键值为13
            btn.click(); //调用登录按钮的登录事件
        }
    };


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

运行实例 »

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


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议