当前位置:
首页 > temp > JavaScript教程 >
-
JavaScript DOM–元素操作(2)
"> </div>
<script>
var div = document.querySelector('#demo');
// 获取属性
console.log(div.id); // demo
//获取自定义属性
console.log(div.getAttribute('index')); // 1
</script>
</body>
- 设置属性
- ele.属性名 = ‘值’ (自带属性)
- ele.setAttribute(‘属性’)
<body> <div id="demo" > </div> <script> var div = document.querySelector('#demo'); // 自带属性设置 div.id = 'test'; // 自定义属性设置 div.setAttribute('index', 'ce_shi') </script> </body>
- 移除属性
- ele.removeAttribute(‘属性’)
<body> <div id="demo" index="1"> </div> <script> var div = document.querySelector('#demo'); // 移除自定义属性 div.removeAttribute('index') </script> </body>
- H5自定义属性
- 自定义属性以’data-’开头命名
- H5新增ele.dataset.自定名 或者 ele.dataset[‘自定义名’] ie11 才支持
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>tab栏切换</title> <style> * { margin: 0; padding: 0; } li { list-style-type: none; } .tab { width: 978px; margin: 100px auto; } .tab_list { height: 39px; border: 1px solid #ccc; background-color: #f1f1f1; } .tab_list li { float: left; height: 39px; line-height: 39px; padding: 0 20px; text-align: center; cursor: pointer; } .tab_list .current { background-color: #c81623; color: #fff; } .item_info { padding: 20px 0 0 20px; } .item { display: none; } </style> </head> <body> <div class="tab"> <div class="tab_list"> <ul> <li class="current">商品介绍</li> <li>规格与包装</li> <li>售后保障</li> <li>商品评价(50000)</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"> 商品评价(50000)模块内容 </div> <div class="item"> 手机社区模块内容 </div> </div> </div> <script> // 获取元素 var tab_list = document.querySelector('.tab_list'); var lis = tab_list.querySelectorAll('li'); var items = document.querySelectorAll('.item'); for (var i=0; i< lis.length; i++) { // 设置定义属性为index lis[i].setAttribute('index', i); // 给每个li注册点击事件 lis[i].onclick = function () { // 干掉其他人 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' } items[index].style.display = 'block' } } </script> </body> </html>
排他思想
如果有同一组元素,我们想要某一个元素实现某种样式, 需要用到循环的排他思想算法:
干掉所有人,留下我自己。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>按钮</title> <style> </style> </head> <body> <button>按钮1</button> <button>按钮2</button> <button>按钮3</button> <button>按钮4</button> <button>按钮5</button> <script> var btns = document.querySelectorAll('button'); for (var i=0; i < btns.length; i++) { // 注册点击事件 btns[i].onclick = function () { for (var i=0; i<btns.length; i++) { // 干掉所有人 btns[i].style.backgroundColor = '' } //留下我自己 this.style.backgroundColor = 'red' } } </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表格变色</title> <style> table { width: 800px; margin: 100px auto; text-align: center; border-collapse: collapse; font-size: 14px; } thead tr { height: 30px; background-color: skyblue; } tbody tr { height: 30px; } tbody td { border-bottom: 1px solid #d7d7d7; font-size: 12px; color: blue; } .bg { background-color: pink; } </style> </head> <body> <table> <thead> <tr> <th>代码</th> <th>名称</th> <th>最新公布净值</th> <th>累计净值</th> <th>前单位净值</th> <th>净值增长率</th> </tr> </thead> <tbody> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> </tbody> </table> <script> // 获取元素 var trs = document.querySelector('tbody').querySelectorAll('tr'); for (var i=0; i < trs.length; i++) { // 注册鼠标经过事件 trs[i].onmouseover = function () { this.className = 'bg' }; // 注册鼠标离开事件 trs[i].onmouseout = function () { this.className = '' } } </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>全选反选</title> <style> * { padding: 0; margin: 0; } .wrap { width: 300px; margin: 100px auto 0; } table { border-collapse: collapse; border-spacing: 0; border: 1px solid #c0c0c0; width: 300px; } th, td { border: 1px solid #d0d0d0; color: #404060; padding: 10px; } th { background-color: #09c; font: bold 16px "微软雅黑"; color: #fff; } td { font: 14px "微软雅黑"; } tbody tr { background-color: #f0f0f0; } tbody tr:hover { cursor: pointer; background-color: #fafafa; } </style> </head> <body> <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>iPad Pro</td> <td>5000</td> </tr> <tr> <td> <input type="checkbox"/> </td> <td>iPad Air</td> <td>2000</td> </tr> <tr> <td> <input type="checkbox"/> </td> <td>Apple Watch</td> <td>2000</td> </tr> </tbody> </table> </div> <script> // 获取元素 var j_cbAll = document.querySelector('#j_cbAll'); var j_tb = document.querySelector('#j_tb'); var inputs = j_tb.querySelectorAll('input'); // 全选按钮,根据id j_cbAll j_cbAll.onclick = function () { // console.log(this.checked); for (var i=0; i< inputs.length; i++) { inputs[i].checked = this.checked; } }; for (var i=0; i < inputs.length; i++) { inputs[i].onclick = function () { var flag = true; for (var i=0; i < inputs.length; i++) { // 如果变量不为真,则全选框就不为真,直接退出循环 if (!inputs[i].checked) { flag = false; break; } } j_cbAll.checked = flag; // 设置全选按钮为变量值 true or false } } </script> </body> </html>