DOM操作表单 数组API扩展

DOM 操作表单

表单元素

输入框、密码框、下拉选框、多选框、单选框

表单操作

input 输入框

获取设置值 value

var inp = document.querySelector('input')
console.log(inp.value);
inp.value = '123'

input 的事件

  • input

    当input元素内容发生改变时触发事件

    1. var inp = document.querySelector('input')
    2. inp.addEventListener('input',function(){
    3. console.log(inp.value);
    4. })
    • change

    当input元素内容发生改变并失去焦点时触发事件

    1. var inp = document.querySelector('input')
    2. inp.addEventListener('change',function(){
    3. console.log(inp.value);
    4. })
  • blur

    当标签失去焦点时触发事件

  • focus

    当标签获取到焦点时触发事件

     
        
    1. var inp = document.querySelector('input')
    2. inp.addEventListener('blur',function(){
    3. console.log(111111111);
    4. })
    5. inp.addEventListener('focus',function(){
    6. console.log(22222222222);
    7. })

select 下拉选框

获取设置值:value

 
  
  1. var osel = document.querySelector('#sel')
  2. console.log(osel.value);
  3. osel.value = 3

change事件

当选项发生改变时触发事件

 
  
  1. var osel = document.querySelector('#sel')
  2. osel.addEventListener('change',function(){
  3. console.log(osel.value);
  4. })

单选框 复选框

页面上不知一个单选框或者多选框,我们需要遍历每一个单选框或者多选框进行设置事件,事件一半使用click或者change事件来得到选中的结果

选中状态

选择中状态

单选框和多选框在判断的时候需要通过js确定当前标签是否选中,可以使用checked进行判断

 
  
  1. var check = document.querySelectorAll('[name=aaa]')
  2. console.log(check);
  3. var checkeds = []
  4. for(var i = 0;i
  5. check[i].addEventListener('click',function(){
  6. console.log(this.checked);
  7. if(this.checked){
  8. checkeds.push(this.value)
  9. console.log(checkeds);
  10. }
  11. })
  12. }

数组API

参考网址:JavaScript Array 对象 | 菜鸟教程

filter()

遍历数组,并返回满足条件的数据组成的一个新数组

 
  
  1. var arr = [1, 2, 3, 4, 5, 6, 7, 8]
  2. //赛选 数字大于3的所有元素
  3. // var filArr = arr.filter(function(item,index,array){
  4. // console.log('item:',item);
  5. // console.log('index:',index);
  6. // console.log(array);
  7. // return item > 3
  8. // })
  9. // console.log(filArr);
  10. var filArr2 = arr.filter(item => item > 4)
  11. console.log(filArr2);

适用案例

1.筛选出 价格大于30的产品

2.购物车 删除所有选中的商品 我们可以返回没有选择的商品 赋值给原来的数组

some()

检测数组元素中是否有元素符合指定条件。

 
  
  1. var users = [
  2. {name:'admin',pwd:'123456'},
  3. {name:'admin2',pwd:'123456'},
  4. {name:'admin3',pwd:'123456'}
  5. ]
  6. var inArr = users.some(item => item.name=='admin2'&&item.pwd == '123456')
  7. console.log(inArr);

sort()

对数组的元素进行排序。

 
  
  1. var arr = [{id:1,price:30},{id:2,price:40},{id:3,price:70},{id:4,price:10}]
  2. var sortArr = arr.sort((a,b)=>a.price-b.price)
  3. console.log(sortArr);

map()

通过指定函数处理数组的每个元素,并返回处理后的数组。

 
  
  1. var arr = [{ id: 1, price: 30 }, { id: 2, price: 40 }, { id: 3, price: 70 }, { id: 4, price: 10 }]
  2. var mapArr = arr.map(item => {
  3. item.price *= 0.8
  4. return item
  5. })
  6. console.log(mapArr);

forEach()

数组专属遍历,替代for循环

 
  
  1. 数组.forEach((item,index,array)=>{
  2. // item:数组中每次循环取出来的数据
  3. //index:遍历的下标
  4. //array:原数组
  5. })

案例

 
  
  1. function render(){
  2. let dom = ''
  3. goodsList.forEach(item =>{
  4. dom += `
  5. ${item.title}
  6. ¥${item.price}.00
  7. `
  8. })
  9. // for (var i = 0; i < goodsList.length; i++) {
  10. // dom += `
  11. //
  12. //
  13. //
  14. //
  15. //
  16. //
  17. //
  18. //
    ${goodsList[i].title}
  19. //
    ¥${goodsList[i].price}.00
  20. //
  21. //
  22. // `
  23. // }
  24. goodsBox.innerHTML = dom
  25. }

三目运算符(拓展)

又称作三元运算符,用于根据条件来决定执行不同的代码

 
  
  1. 条件 ? 满足条件返回值 : 不满足条件返回值
  2. var num = prompt('请输入一个数字')
  3. console.log(num>10 ? '大于10' : '小于10');

适用案例

判断选中状态

 
  

你可能感兴趣的:(javascript,前端,vue.js)