자바스크립트 재귀 함수에 대한 질문은 마스터에게 문의하세요.
漂亮男人
漂亮男人 2017-06-28 09:24:22
0
2
685

안녕하세요, 스승님, 내 기능이 실행될 수 없는 이유를 알아내도록 도와주세요.
상황 설명: p의 테이블이 ajax를 통해 로드되므로 해당 테이블이 있는지 확인하는 것이 함수의 목적입니다. 테이블이 없으면 배경을 빨간색으로 만듭니다. 1초 후에 다음 함수를 실행합니다. 하지만 이제는 테이블이 로드되어 표시될 때 find() 함수가 테이블을 빨간색으로 바꾸지 않습니다(오류 보고: Uncaught RangeError: 최대 호출 스택 크기 초과)
미리 감사드립니다, 마스터!

漂亮男人
漂亮男人

모든 응답(2)
我想大声告诉你

p.getElementsByTagName('table')[0]这个取到的是一个DOM对象,由于DOM对象没有.length属性,所以target.length其实是未定义的。而undefined > 0的值一直是false,所以你会无限次地调用else分支,所以也就会添加无数次的find(p)绑定。所以浏览器提示find 최대 통화 횟수를 초과했기 때문입니다.

올바른 접근 방식은 targetp.getElementsByTagName("table"),这才是一个数组,才有.length의 값을 두는 것입니다.

업데이트

코드:
옵션 1: (모든 테이블의 배열 길이를 판단하고 첫 번째 작업을 수행합니다.)

으아악

옵션 2: (테이블을 직접 판단하고 획득한 테이블을 직접 조작)

으아악
世界只因有你

target.length 대상은 테이블인데 table.length는 무엇인가요?

참고해주세요

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿