JavaScript 폼 전체 선택 또는 반전 효과 구현
표 에서 checkbox 체크 상 자 를 자주 사용 합 니 다.체크 상 자 를 통 해 만 든 목록 을 모두 선택 하거나 선택 하지 않 는 효과 도 흔히 볼 수 있 습 니 다.예 를 들 어 카 트 의 상품 목록 등 이 있 기 때문에 본 편 은 이런 흔히 볼 수 있 는 기능 의 선택 효과 와 그 밑 에 있 는 실현 사고 와 코드 에 대해 소개 하고 프레젠테이션 하 며 분석 합 니 다.아래 의 JS 코드 는 다음 과 같 습 니 다.
<script>
// : :checkbox checked true , false
var j_cbAll = document.getElementById('j_cbAll'); //
var j_tbs = document.getElementById('j_tb').getElementsByTagName('input'); // input
//
// 1.
j_cbAll.onclick = function () {
// this.checked true false
for (var i = 0; i < j_tbs.length; i++) {
j_tbs[i].checked = this.checked; // tbody checked checked ,
}
}
// 2.tbody : , , :tbody ,
for (var i = 0; i < j_tbs.length; i++) {
j_tbs[i].onclick = function () {
// flag
var flag = true;
// 4
for (var i = 0; i < j_tbs.length; i++) {
console.log('---'+j_tbs[i].checked);
if (j_tbs[i].checked == false) { // flag false
flag = false;
break; // for , , ,
}
}
j_cbAll.checked = flag; // flag
}
}
</script>
실행 코드 캡 처:전체 선택 클릭 시:다시 한 번 클릭:
아래 의 체크 상 자 를 선택 하면:
주:아래 의 네 개의 체크 상자 가 전체 선택 되 지 않 으 면 위의 전체 선택 단 추 는 선택 되 지 않 습 니 다.
내부 JS 구현 사 고 는 주로 두 부분 으로 나 뉜 다.첫 번 째 부분 은'전체 선택'단추 의 기능 이다.선택 할 때 아래 의 모든 체크 상자 의 checked=true 이다.주의:이 값 은 이 기능 이 실현 하 는 관건 이다.만약 에'전체 선택'단추 가 선택 되 지 않 은 상태 일 때 checked 의 값 은 false 이기 때문에 이 값 을 아래 의 모든 하위 체크 상자 에 할당 하면 된다.두 번 째 부분 은 아래 의 하위 체크 상자 의 클릭 선택 기능 과 그들의 상태 가 함께 결정 하 는'전체 선택'단추 의 상태 입 니 다.아래 에 모두 선택 되면 전체 선택 단추 도 선택 상태 가 되 어야 합 니 다.적어도 선택 되 지 않 으 면 전체 선택 단추 도 선택 되 지 않 은 상태 입 니 다.주의:하위 체크 상자 의 모든 클릭 은 판단 해 야 합 니 다.모든 체크 상자 가 선택 되 었 는 지 확인 합 니 다.(코드 분석 을 결합 하 는 것 을 권장 합 니 다.코드 에 상세 한 주석 해석 이 포함 되 어 있 습 니 다)
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.