博客列表 >2018年09月14日

2018年09月14日

南风的博客
南风的博客原创
2018年09月17日 18:40:38563浏览

实例

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>根据id选择元素</title>
</head>
<body>
<ul id="lists">
    <li id="itme1">列表项1</li>
    <li>列表项2</li>
    <li id="itme2">列表项3</li>
    <li>列表项4</li>
    <li id="itme3">列表项5</li>
</ul>
<script>
    //使用id属性获取元素
    let item1 = document.getElementById('item1');
    let item2 = document.getElementById('item2');
    let item3 = document.getElementById('item3');

    //设置元素样式
    item1.style.backgroundColor='yellow';
    item2.style.backgroundColor='yellow';
    item3.style.backgroundColor='yellow';

    //如果需要使用多个id来获取元素,可以通过函数来简化操作
    function getElements() {//参数是多个id字符串
        let elements={}; //创建一个空的map映射对象用来保存结果
        for(let i=0;i<arguements.length;i++){
            let id =arguements[i];// 获取到要查询的每个id
            let elt = document.getElementById(id);//根据id查找元素
            if(elt===null){
                throw new Error("No element with id:"+id);//抛出异常
            }
            elements[id]=elt;//将获取的元素存入到映射数据在
        }
        return elements;//返回查询到的元素(以对象字面量方式)
    }

    //获取页面上指定的id属性的元素,返回一个关联数组类型对象,键名就是id的值
    let elements=getElements('item1','item2','item3');
    for(let key in elements){
        elements[keys].style.backgroundColor='coral';
    }
</script>
</body>
</html>

运行实例 »

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

 

实例

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>通过class属性选取元素</title>
</head>
<body>
<ul class="ul">
    <li class="red">列表项01</li>
    <li>列表项02</li>
    <li class="green">列表项03</li>
    <li>列表项04</li>
    <li class="coral large">列表项05</li>
</ul>
<script>
    //根据元素的class属性值获取元素
    let red=document.getElementsByClassName('red');
    console.log(red);//返回一个html元素集合,与根据标签名获取的返回数据类型完全一样
    red[0].style.backgroundColor='red';
    //在父元素上调用
    document.getElementsByClassName('ul').item(0)
           .getElementsByClassName('ul').item(0)
           style.backgroundColor ='green'

    //支持多个class
    let large =document.getElementsByClassName('coral large')[0];
    large.style.backgroundColor='coral';
    large.style.fontSize='1.5rem';
</script>

</body>
</html>

运行实例 »

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

实例

<!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.ba='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>

运行实例 »

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

 

实例

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>DOM实战:模拟智能在线机器人系统</title>
	<style type="text/css">
		div:nth-child(1) {
			width: 450px;
			height: 650px;
			background-color: lightskyblue;
			margin: 30px auto;
			color: #333;
			box-shadow: 2px 2px 2px #808080
		}
		
		h2 {
			text-align: center;
			margin-bottom: -10px;
		}
		div:nth-child(2) {
			width: 400px;
			height: 500px;
			border: 4px double green;
			background-color: #efefef;
			margin: 20px auto 10px;
		}
		
		ul {
			list-style: none;
			line-height: 2em;
			/*border: 1px solid red;*/
			overflow: hidden;
			padding: 15px;
		}

		table {
			width: 90%;
			height:80px;
			margin: auto;
		}

		textarea{
			/*width: 300px;*/
			border: none;
			resize: none;
			background-color: lightyellow;
			
		}
		button {
			width: 60px;
			height: 40px;
			background-color: seagreen;
			color: white;
			border: none;
			/*text-align: left;*/

		}
		button:hover {
			cursor: pointer;
			background-color: orange;
		}
	</style>
</head>
<body>
 <div>
     <h2>在线机器人聊天</h2>
     <div contenteditable="true">
         <ul>
             <li></li>
         </ul>
     </div>
     <table>
         <tr>
             <td align="right"><textarea name="text" id="" cols="50" rows="4"></textarea></td>
             <td align="left"><button type=button>发送</button></td>
         </tr>
     </table>
 </div>
 <script type="text/javascript">
     //获取到页面的按钮,文本域,对话内容去
     let btn = document.getElementsByTagName('button')[0];
		let text = document.getElementsByName('text')[0];
     let list = document.getElementsByTagName('ul')[0];
     let sum = 0;

     //添加按钮点击事件,获取用户数据并推送到对话窗口中
     btn.onclick = function () {
         //alert(text.value)
         //获取用户提交的内容
         if(text.value,length===0){
             alert('客官:是不是忘记输入内容了~~');
             return false;
         }
         let userComment = text.value;

         //立即清空用户信息区
         text.value='';

         //创建一个新节点li
         let li = document.createElement('li');
         li.innerHTML =userComment;//将用户输入的内容添加到新节点中
         let userPic ='<img src="inc/1.perjpg" width="30" style="border-radius: 50%">';
         li.innerHTML = userPic+''+userComment;// 将用户头像与用户的聊天内容合并
         list.appendChild(li);//发送聊天内容,实际上就是将新节点插入到对话列表中
         sum += 1;	// 聊天记录自增1

         //设置定时器,默认2秒后会自动回复
         setTimeout(function(){
             let info = [
                 '真烦人,有话快说,别耽误我玩抖音',
                 '除了退货,退款,咱们什么都可以聊',
                 '说啥,本姑娘怎么听不懂呢?再说一遍',
                 '在我方便的时候再回复你吧~~',
                 '投诉我的人多了,你算老几~~~'
             ];
             let temp = info[Math.floor(Math.random()*3)];
             //取1-5之间的一个整数:Math.floor(Math.random()*6 + 1)
             let reply = document.createElement('li');
             let kefuPic = '<img src="inc/2.jpg" width="30" style="border-radius:50%;">';
             // reply.innerHTML = '你有啥事呀,我的帅哥哥' +kefuPic
             reply.innerHTML = kefuPic + ' ' + '<span style="color:red">'+temp+'</span>';

             list.appendChild(reply);
             sum += 1;

         },2000);

         // 当聊天记录达到10条时清空窗口
         if (sum > 10) {
             list.innerHTML = '';
             sum = 0;
         }
     }
 </script>
</body>
</html>

运行实例 »

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

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