<script> //1.获取所有按钮元素 var btns = document.getElementsByTagName('button'); //btns得到的是伪数组 里面的每一个元素 btns[i] for (var i = 0; i < btns.length; i++) { btns[i].onclick = function () { //(1)我们先把所有的按钮颜色去掉 for (var i = 0; i < btns.length; i++) { btns[i].style.backgroundColor = ''; } //(2)然后让当前的元素背景颜色为pink this.style.backgroundColor = 'pink'; } } </script>
<style> * { margin: 0; padding: 0; } body { background: url(images/1.jpg) no-repeat center top; } li { list-style: none; } .baidu { overflow: hidden; margin: 100px auto; background-color: #fff; width: 410px; padding-top: 3px; } .baidu li { float: left; margin: 0 1px; cursor: pointer; } .baidu img { width: 100px; } </style>
<ul class="baidu"> <li><img src="images/1.jpg" alt=""></li> <li><img src="images/2.jpg" alt=""></li> <li><img src="images/3.jpg" alt=""></li> <li><img src="images/4.jpg" alt=""></li> </ul> <script> //1.获取元素 var imgs = document.querySelector('.baidu').querySelectorAll('img'); //2.循环注册事件 for (var i = 0; i < imgs.length; i++) { imgs[i].onclick = function () { //this.src就是我们点击图片的路径,把该路径给body document.body.style.backgroundImage = 'url(' + this.src + ')'; } } </script>
<div class="wrap"> <table> <thead> <tr> <th> <input type="checkbox" id="j_cbAll"> </th> <th>商品</th> <th>价钱</th> </tr> </thead> <tbody id="j_tb"> <tr> <td> <input type="checkbox"> </td> <td>iPhone8</td> <td>8000</td> </tr> <tr> <td> <input type="checkbox"> </td> <td>mac</td> <td>12000</td> </tr> <tr> <td> <input type="checkbox"> </td> <td>watch</td> <td>2000</td> </tr> </tbody> </table> </div> <script> //1.全选取消全选 //获取元素 var j_cbAll = document.getElementById('j_cbAll');//全选 var j_tbs = document.getElementById('j_tb').getElementsByTagName('input'); //注册事件 j_cbAll.onclick = function () { // this.checked;可以得到当前复选框的选中状态,true选中状态 for (var i = 0; i < j_tbs.length; i++) { j_tbs[i].checked = this.checked; } } //2.下面复选框需要全部选中,上面的全选才能选中:给下面所以复选框绑定点击事件,每次点击, //都要循环查看下面所有的复选框是否有没有没选中的,如果有一个没选中的,上面全选就不选中。 for (var i = 0; i < j_tbs.length; i++) { j_tbs[i].onclick = function () { // flag控制全选按钮是否选中 var flag = true; //每次点击下面的复选框都要循环检查小按钮是否全选中 for (var i = 0; i < j_tbs.length; i++) { if (!j_tbs[i].checked) { flag = false; break;//退出循环可以提高执行效率 } } j_cbAll.checked = flag; } } </script>
<div id="demo" index="1" class="nav"></div> <script> var div = document.querySelector('div'); //1.获取元素的属性值 //(1)element.属性 console.log(div.id); //(2)element.getAttribute('属性') get得到获取attribute 属性的意思 //程序自己添加的属性成为自定义属性 console.log(div.getAttribute('id')); console.log(div.getAttribute('index')); //2.设置属性值 //(1)第一种方法 div.id = 'test'; div.className = 'navs'; //(2)针对自定义 div.setAttribute('index', 2); div.setAttribute('class', 'float');//class特殊 不需要弄classname //3.移除属性 div.removeAttribute('index'); </script>区别 第一种方法用于获取内置属性值(元素本身自带的属性) 第二种方法主要获得自定义属性
<style> * { margin: 0; padding: 0; } .tab_list { height: 200px; } .tab_list li { float: left; height: 39px; line-height: 39px; padding: 0 20px; text-align: center; cursor: pointer; } .tab_list .current { background-color: brown; color: azure; } .item_info { padding: 20px 0 0 20px; } .item { display: none; } </style>
<div class="tab"> <div class="tab_list"> <ul> <li class="current">商品介绍</li> <li>规格与包装</li> <li>售后保障</li> <li>商品评价(5000+)</li> <li>手机社区</li> </ul> </div> <div class="tab_con"> <div class="item" style="display: block;">商品介绍模块内容</div> <div class="item">规格与包装模块内容</div> <div class="item">售后保障模块内容</div> <div class="item">商品评价模块内容</div> <div class="item">手机社区模块内容</div> </div> </div> <script> var tab_list = document.querySelector('.tab'); var lis = tab_list.querySelectorAll('li'); var items = document.querySelectorAll('.item'); for (var i = 0; i < lis.length; i++) { //开始给5个li设置索引号 lis[i].setAttribute('index', i); lis[i].onclick = function () { //1.排他思想 for (var i = 0; i < lis.length; i++) { lis[i].className = ''; } this.className = 'current'; var index = this.getAttribute('index'); for (var i = 0; i < items.length; i++) { items[i].style.display = 'none'; } //干掉所有人 让其余div隐藏 items[index].style.display = 'block'; } } </script>
<div getTime="20" data-index="2" data-list-name="ame"></div> <script> var div = document.querySelector('div'); console.log(div.getAttribute('getTime')); div.setAttribute('data-time', 20); console.log(div.getAttribute('data-index')); //dataset 是一个集合里面存放了所有以data开头的自定义属性 console.log(div.dataset); console.log(div.dataset.index); console.log(div.dataset['index']); //如果自定义属性里面有多个-连接的词,我们获取的时候采取驼峰命名法 console.log(div.dataset.listName); </script>
<ol> <li>no.1</li> <li>no.2</li> <li>no.3</li> <li>no.4</li> </ol> <script> var ol = document.querySelector('ol'); //1.firstChild第一个子节点 不管是文本节点还是元素节点 console.log(ol.firstChild); console.log(ol.lastChild); //2.兼容性问题 console.log(ol.firstElementChild); console.log(ol.lastElementChild); //3.实际开发用法 console.log(ol.children[0]); console.log(ol.children[ol.children.length - 1]); </script>
<ul>123</ul> <script> //1.创建节点元素节点 var li = document.createElement('li'); //2.添加节点 node.appendChild(child) node父级 child是子集 后面追加元素 var ul = document.querySelector('ul'); ul.appendChild(li); //3.添加节点 var lili = document.createElement('li'); ul.insertBefore(lili, ul.children[0]); </script>
发布留言案例
<textarea name="" id="">123</textarea> <button>发布</button> <ul> </ul> <script> //1。获取元素 var btn = document.querySelector('button'); var text = document.querySelector('textarea'); var ul = document.querySelector('ul'); //2.注册事件 btn.onclick = function () { if (text.value == '') { alert('您没有输入内容'); return false; } else { //1.创建元素 var li = document.createElement('li'); li.innerHTML = text.value; //2.添加元素 // ul.appendChild(li); ul.insertBefore(li, ul.children[0]); } } </script>