찾다

 >  Q&A  >  본문

자바스크립트 재귀 함수에 대한 질문은 마스터에게 문의하세요.

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

漂亮男人漂亮男人2712일 전689

모든 응답(2)나는 대답할 것이다

  • 我想大声告诉你

    我想大声告诉你2017-06-28 09:26:22

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

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

    업데이트

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

    으아악

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

    으아악

    회신하다
    0
  • 世界只因有你

    世界只因有你2017-06-28 09:26:22

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

    참고해주세요

    으아악

    회신하다
    0
  • 취소회신하다