안녕하세요, 스승님, 내 기능이 실행될 수 없는 이유를 알아내도록 도와주세요.
상황 설명: p의 테이블이 ajax를 통해 로드되므로 해당 테이블이 있는지 확인하는 것이 함수의 목적입니다. 테이블이 없으면 배경을 빨간색으로 만듭니다. 1초 후에 다음 함수를 실행합니다. 하지만 이제는 테이블이 로드되어 표시될 때 find() 함수가 테이블을 빨간색으로 바꾸지 않습니다(오류 보고: Uncaught RangeError: 최대 호출 스택 크기 초과)
미리 감사드립니다, 마스터!
我想大声告诉你2017-06-28 09:26:22
p.getElementsByTagName('table')[0]
这个取到的是一个DOM对象,由于DOM对象没有.length
属性,所以target.length
其实是未定义的。而undefined > 0
的值一直是false
,所以你会无限次地调用else
分支,所以也就会添加无数次的find(p)
绑定。所以浏览器提示find
최대 통화 횟수를 초과했기 때문입니다.
올바른 접근 방식은 target
为p.getElementsByTagName("table")
,这才是一个数组,才有.length
의 값을 두는 것입니다.
코드:
옵션 1: (모든 테이블의 배열 길이를 판단하고 첫 번째 작업을 수행합니다.)
옵션 2: (테이블을 직접 판단하고 획득한 테이블을 직접 조작)
으아악