一、复选框 实现 全选 反选 不选


单元练习题 - 图1

  1. <button id="btn">全选</button>
  2. <button id="btn2">不选</button>
  3. <button id="reverse">反选</button>
  4. <div>
  5. <input type="checkbox">足球
  6. <input type="checkbox">蓝球
  7. <input type="checkbox">LOL
  8. <input type="checkbox">乒乓球
  9. </div>
var btn = document.getElementById("btn")
var btn2 = document.getElementById("btn2")
var btn3 = document.getElementById("reverse")
var inputs = document.getElementsByTagName("input")
// 1.对 btn 执行点击事件
btn.onclick = function(){
  // 2. 将所有的 input 的 checked 属性设置为 true
  for(var i=0;i<inputs.length;i++){
    inputs[i].checked = true;
  }
}
btn2.onclick = function(){
  for(var i=0;i<inputs.length;i++){
    inputs[i].checked = false;
  }
}
btn3.onclick = function(){
  for(var i=0;i<inputs.length;i++){
    inputs[i].checked = (inputs[i].checked)?false:true;
  }
}

二、隔行变色


单元练习题 - 图2

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>
var lis = document.getElementsByTagName("li")
for(var i=0;i<lis.length;i++){
  if(i%2==0){
    lis[i].style.backgroundColor = "pink"
  }else{
    lis[i].style.backgroundColor = "skyblue"
  }
}

三、切换显示隐藏

<div style="display: block;">
  hello
</div>
<button id="btn">toggle</button>
var div = document.getElementsByTagName("div")[0]
var btn = document.getElementById("btn")
btn.onclick = function(){
  var d = div.style.display
  div.style.display =(d=="block")?"none":"block";
}

四、输入框字符限制

<p>还可以输入<em id="em" style="color:red">0</em>/30</p>
<textarea id="txt" cols="30" rows="10"></textarea>
                var txt = document.getElementById("txt")
        var em = document.getElementById("em")
        txt.onkeydown = function(){
            var length = this.value.length;
            if(length<=30){
                em.innerHTML = this.value.length;
            }else{
                alert("最多只能输入30个字符")
            }
        }

五、动态添加列表 ( todoList )

<input type="text" id="txt">
<ul id="app">

</ul>
                var arr = []
        var txt = document.getElementById("txt")
        var app = document.getElementById("app")
        txt.onkeydown = function(event){
            if(event.keyCode == 13){
              /* indexOf  arr.indexOf(value)  获取数组的下标  没有的返回-1  */
                if(arr.indexOf(this.value) == -1 && this.value!=""){
                    arr.push(this.value)
                    var li = document.createElement("li")
                    li.innerHTML = this.value
                    app.append(li)
                }
                console.log(arr);
            }
        }

六、数据处理

                var obj = [
            {name:"zheng",age:18,skill:"vue"},
            {name:"zhang",age:17,skill:"js"},
            {name:"liu",age:20,skill:"html"}
        ]
        /* arr = [{name:"xx",skill:"xxx"},{name:"xx",skill:"xxx"}] */
        var arr = []
        for(var i=0;i<obj.length;i++){
            /* var name = obj[i].name;
            var skill = obj[i].skill; */
            var {name,skill} = obj[i]
            arr.push({
                /* name:name,skill:skill */
                name,
                skill
            })
        }
        console.log(arr);

七、tab栏切换

                .current{
            color: crimson;
        }
        .parent{
            width: 200px;
            height: 200px;
            border: 1px solid #666;
            position: relative;
        }
        .parent>div{
            width: 200px;
            height: 200px;
            position: absolute;
        }
        .html{
            background: coral;
            z-index: 100;
        }
        .css{
            background: skyblue;
        }
        <ul>
        <li class="current">html</li>
        <li>css</li>
    </ul>
    <div class="parent">
        <div class="html">html</div>
        <div class="css">css</div>
    </div>
                var lis = document.getElementsByTagName("li")
        var divs = document.querySelectorAll(".parent div")
        for(let i=0;i<lis.length;i++){
            lis[i].index = i;  // 下标值
            lis[i].onclick = function(){
                // 1.给所有的li移除class="current"
                for(let i=0;i<lis.length;i++){
                    lis[i].classList.remove("current")
                }
                // 2.给当前的 添加current类
                this.classList.add("current")


                // 3.让所有的div隐藏
                for(let i=0;i<divs.length;i++){
                    divs[i].style.display="none"
                }
                // 4.让对应下标的div显示
                divs[this.index].style.display = "block"
            }
            // console.log(lis[i].index);
        }