창이로드 될 때 innerHTML = 'null'에 대한 해결 방법

logos_164

나는 단지 연습과 "재미"를 위해 ES5 JS로 앱을 만들고 있는데, 여기서 웹 사이트를 저장 localStorage한 다음 페이지에 인쇄합니다. 즉, 북마크 응용 프로그램입니다.

나는 얻고있다

TypeError : 'innerHTML'속성을 null로 설정할 수 없습니다.

다음 코드를 실행할 때 콘솔 오류 :

index.html

  <body onload="fetchBookmarks()">

    <div class="container">
        ...some code
      </div>

      <div class="jumbotron">
        <h2>Bookmark Your Favorite Sites</h2>
        <form id="myForm">
            ...some code
        </form>
      </div>

      <div class="row marketing">
        <div class="col-lg-12">
            <div id="bookmarksResults"></div> /* problem code */
        </div>
      </div>

      <footer class="footer">
        <p>&copy; 2018 Bookmarker</p>
      </footer>

    </div>
    <link rel="stylesheet" href="main.css">
    <script src="./index.js"></script>
</body>

index.js

...someJScode that stores the websites in localStorage
function fetchBookmarks() {
    var bookmarks = JSON.parse(localStorage.getItem('bookmarks'));

    //Get output id
    var bookmarksResults = document.getElementById('#bookmarksResults');

    bookmarksResults.innerHTML = '';
    for(var i = 0; i < bookmarks.length; i++) {
        var name = bookmarks[i].name;
        var url = bookmarks[i].url;

        bookmarksResults.innerHTML += name;
    }

}

나는로드하고 있기 때문에 지금은 오류가 분명히 <body>전과 <div id="bookmarksResults"></div>때문에 innerHTML응답에null

하지만 여기에 두 가지가 있습니다.

내가 할당 할 때 1) onload="fetchBookmarks()"받는 <footer>요소, 함수는 실행되지 않습니다. 2) 내가 따르는 자습서에는이 코드가 거의 정확하게 있으며 거기에서 실행됩니다.

또한 fetchBookmarks()다음과 같은 기능을 실행 해 보았습니다 .

 window.onload = function() {
            fetchBookmarks();
            function fetchBookmarks(){
                ...some JS code
            };
        }

그러나 그것은 똑같이 돌아왔다

TypeError : 'innerHTML'속성을 null로 설정할 수 없습니다.

그래서 나는 여기서 조금 길을 잃었고 이것이 왜 작동하지 않는지와 그 뒤에있는 이론 을 알아내는 데 훨씬 더 관심 이 있으므로 JS를 더 잘 이해합니다 (처음 에이 앱을 빌드하는 요점).

어떤 도움을 주시면 감사하겠습니다! 감사합니다.

31piy

문제는 다음 줄에 있습니다.

document.getElementById('#bookmarksResults')

와 함께 #사용할 때 ID를 접두사로 사용할 필요가 없습니다 document.getElementById. #메서드 호출에서를 제거 하거나 document.querySelector()동일한 방식으로 작동하지만 CSS와 유사한 선택기를 지원하여 DOM에서 요소를 선택할 수 있습니다.

document.getElementById('bookmarksResults');
// OR
document.querySelector('#bookmarksResults');

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

내부 개체가 변경 될 때 HashSet에 대한 해시 해결 방법

LO65830에 대한 해결 방법 찾기 : 그룹 달력 탭이 생성 될 때 <제목 없음> 임

페이로드가 갑자기 NULL이 될 때 Laravel 8에서 "페이로드가 잘못되었습니다"를 해결하는 방법

innerHtml 속성을 통해 삽입될 때 일반 하이퍼링크에서 각도 앱 다시 로드를 수정하는 방법은 무엇입니까?

이 카드보기로 제한 될 때 페이지의 꺼져가는에서보기를 해결하는 방법

0이 될 때까지 각 열에 대해 인접한 값만 합산하는 방법은 무엇입니까?

null로 보고될 때 동일한 테이블의 두 값을 대체/연결하는 방법은 무엇입니까?

다른 스레드에서 조건이 해결 될 때까지 한 스레드를 절전 모드로 전환

VB6 필드가 null일 때 그대로 결과 집합에서 테이블에 삽입하는 방법

컴퓨터에 대한 원격 RDP 연결이 시작될 때 원격 컴퓨터의 잠금 화면을 방지하려면 어떻게해야합니까?

이전 활동의 의도로 활동을 표시하기 위해 데이터가 수신 될 때 조각에 대한 데이터를 설정하는 방법

약속이 해결 될 때까지 기다리는 방법

이중 행의 원인과 코드에 의해 제한 될 때 수정하는 방법

DB 연결이 생성되고 배열의 각 데이터베이스에 대해 쿼리가 실행될 때까지 기다리는 방법

창이로드 될 때 기본적으로 Entry 위젯에 커서를 놓는 방법은 무엇입니까?

SELECT 내에서 사용될 때 CASE 'NOT NULL'에 대한 mysql 구문

DateTimeIndex를 정렬할 때 Pandas FutureWarning에 대한 해결 방법

for 루프에서 다음 반복 전에 약속이 해결될 때까지 기다리는 방법

ManyToOne 연관에 대한 buildForm에서 생성 될 때 선택한 특정 레코드 만 표시하는 방법

어떻게 안드로이드에 대해 "오류 팽창 클래스 GeckoEngineView"를 해결하는 방법

NaN이있을 때 INT를 Float로 캐스팅하는 Pandas에 대한 해결 방법이 있습니까?

angular-생성 될 때 ngFor에 의해 생성 된 각 요소에 대한 참조를 얻는 방법

ADF에서 마스터 파이프라인이 다시 트리거될 때 각 활동에 대해 실패한 파일만 처리하는 방법

약속이 해결 될 때까지 AngularJS에서 브라우저 창이 닫히는 것을 방지하는 방법

ItemsSource가 바인딩 될 때 목록에 대한 null 값

계속하기 전에 모든 약속이 해결 될 때까지 기다리는 방법

XCUITest에서 앱이 유휴 상태가 될 때까지 기다리는 문제를 해결하는 방법

함수 실행을 재개하기 전에 약속이 해결될 때까지 기다리는 방법

일괄 작업이 실행될 때마다 레코드에 대해 IsProcessed 플래그를 True로 설정하는 방법은 무엇입니까?

TOP 리스트

뜨겁다태그

보관