DOM 조작 양식 배열 API 확장

DOM 조작 양식

양식 요소

입력 상자, 암호 상자, 드롭다운 상자, 다중 선택 상자, 라디오 상자

양식 작업

입력 입력 상자

설정 값 값 가져오기

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

입력 이벤트

  • 입력

    입력 요소의 내용이 변경되면 이벤트를 발생시킵니다.

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

    입력 요소의 내용이 변경되어 포커스를 잃을 때 발생하는 이벤트

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

    탭이 포커스를 잃을 때 발생하는 이벤트

  • 집중하다

    탭이 포커스를 받을 때 발생하는 이벤트

     
       
    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. })

드롭다운 상자 선택

설정 값 가져오기: 값

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

변경 이벤트

옵션이 변경되면 이벤트를 발생시킵니다.

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

라디오 확인란

페이지의 라디오 버튼이나 다중 선택 상자를 모릅니다. 이벤트를 설정하려면 각 라디오 버튼이나 다중 선택 상자를 순회해야 합니다. 이벤트의 절반은 선택한 결과를 얻기 위해 클릭 또는 변경 이벤트를 사용합니다. .

선택된 상태

선택된 상태

라디오 상자와 다중 선택 상자를 판단할 때 js를 사용하여 현재 레이블이 선택되었는지 여부를 판단하고 이를 사용하여 checked판단 할 수 있습니다.

 
 
  1. var check = document.querySelectorAll('[name=aaa]')
  2. console.log(check);
  3. var checkeds = []
  4. for(var i = 0;i<check.length;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

참조 URL: JavaScript 배열 개체 | 초보자 자습서

필터()

배열을 순회하고 조건을 충족하는 새로운 데이터 배열을 반환합니다.

 
 
  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. 장바구니는 선택한 모든 항목을 삭제합니다.선택하지 않은 항목을 반환하고 원래 배열에 할당할 수 있습니다.

일부()

배열 요소의 요소가 지정된 조건을 충족하는지 여부를 확인합니다.

 
 
  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);

종류()

배열의 요소를 정렬합니다.

 
 
  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);

지도()

지정된 함수로 배열의 각 요소를 처리하고 처리된 배열을 반환합니다.

 
 
  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);

각각()

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. <a onclick="del(this)" href="javascript:;">
  6. <dl>
  7. <dt>
  8. <span class="abl"></span>
  9. <img src="${item.img}"/>
  10. <span class="abr"></span>
  11. </dt>
  12. <dd>${item.title}</dd>
  13. <dd><span>¥${item.price}.00</span></dd>
  14. </dl>
  15. </a>
  16. `
  17. })
  18. // for (var i = 0; i < goodsList.length; i++) {
  19. // dom += `
  20. // <a onclick="del(this)" href="javascript:;">
  21. // <dl>
  22. // <dt>
  23. // <span class="abl"></span>
  24. // <img src="${goodsList[i].img}"/>
  25. // <span class="abr"></span>
  26. // </dt>
  27. // <dd>${goodsList[i].title}</dd>
  28. // <dd><span>¥${goodsList[i].price}.00</span></dd>
  29. // </dl>
  30. // </a>
  31. // `
  32. // }
  33. goodsBox.innerHTML = dom
  34. }

삼항 연산자(확장)

삼항 연산자라고도 하며 조건에 따라 다른 코드를 실행하도록 결정하는 데 사용됩니다.

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

해당 사례

선택된 상태 판단

 
 
  1. <label class="fl" >
  2. <span class="${item.ischecked?'spanAct':'span'}" onclick="change(${index})"></span>
  3. </label>

추천

출처blog.csdn.net/wodegeCSDN/article/details/130256223