자바 스크립트가 동적으로 생성 된 요소를 삭제할 수 없습니다.

tsu90280

이미지 목록에서 이미지를 클릭 할 때 작업을 수행하는 JS 이벤트 핸들러를 작성 / 작성하려고합니다. 이를 위해 div나는 목표로 삼고 Js 코드를 붙여 넣었 습니다. 나는 이미지를 클릭하면 정보를 표시하고 아래에 두 번째 이미지를 클릭하면 정보가 표시되기를 원합니다 (이전 이미지의 설명 덮어 쓰기). 내 코드 :

window.onload = function () {
    var links = document.getElementsByClassName('a');
    for (var i = 0; i < links.length; i++) {
        links[i].addEventListener('click', function (e) {
            // Hide results
            document.getElementById('placeholder').style.display = 'none';

            // Show loader
            document.getElementById('loading').style.display = 'block';

            if (document.getElementById('imagedescription')) {
                // imagedescription = document.getElementById('imagedescription')
                // placeholder.parentNode.removeChild(imagedescription)
                document.getElementById('imagedescription').style.display = 'none'
            }
            setTimeout(() => showpic(this), 2000);
            e.preventDefault();
        });
    }

    function showpic(pic) {
        document.getElementById('loading').style.display = 'none';
        var imagedescription = document.createElement('div');
        imagedescription.setAttribute('id', 'imagedescription');
        var desctext = document.createTextNode('');
        imagedescription.appendChild(desctext);
        document.getElementById('placeholder').style.display = 'block';
        var source = pic.getAttribute('href');
        var placeholder = document.getElementById('placeholder');
        placeholder.setAttribute('src', source);

        if (pic.getAttribute('title')) {
            var text = pic.getAttribute('title');
        } else {
            var text = '';
        }

        if (text == "1") {
            prob = '1'
            aces = 1
            arks = 5
            results = {
                something:'55',
                something1:'44',
                something2:'556'
            }
        } else if (text == "2") {
            prob = '1'
            aces = 1
            arks = 5
            results = {
                something:'55',
                something1:'44',
                something2:'556'
            }
        } else if (text == "3") {
            prob = '1'
            aces = 1
            arks = 5
            results = {
                something:'55',
                something1:'44',
                something2:'556'
            }
        } else if (text == "4") {
            prob = '1'
            aces = 1
            arks = 5
            results = {
                something:'55',
                something1:'44',
                something2:'556'
            }
        } else {
            prob = 'Probability 95%'
            faces = 1
            landmarks = 5
            results = {
                nose: '(303, 131)',
                mouth_right: '(313, 141)',
                right_eye: '(314, 114)',
                left_eye: '(291, 117)',
                mouth_left: '(296, 143)'
            }

        }

        test = `<button type="button" class="btn btn-primary" style="margin-right: 10px;"> <span class="badge">${prob}</span></button> <button type="button" class="btn btn-success" style="margin-right: 10px;">aces <span class="badge">${aces}</span></button><button type="button" class="btn btn-danger">arks <span class="badge">${arks}</span></button><br /> <span class="badge badge-info">something: ${results.something}</span> <br />  <span class="badge badge-info">something1: ${results.something1}</span> <span class="badge badge-info">something2: ${results.something2}</span> <br /> <span class="badge badge-info">something2: ${results.something2}</span> <span class="badge badge-info">Lefted: ${results.something}</span> <br />`
        test1 = ``



        var imageDescription_d = document.createElement('div');
        imageDescription_d.setAttribute("id", "imageDescription_d");

        var imageDescription_d2 = document.createElement('div');
        imageDescription_d2.setAttribute("id", "imageDescription_d2");

        if (imagedescription.firstChild.nodeType == 3) {

          imagedescription.firstChild.nodeValue = text;
          imageDescription_d.innerHTML = test
          imageDescription_d2.innerHTML = test1



        }

        // imageDescription_d2.innerHTML = test1
        placeholder.parentNode.appendChild(imagedescription);
        imagedescription.parentNode.insertBefore(imageDescription_d, imagedescription.nextSibling);
        imageDescription_d.parentNode.insertBefore(imageDescription_d2, imageDescription_d.nextSibling);
        return false;
    }
    }
#loading {
    display: none;
}
#imagegallery {
    display: inline-block
}
#results {
    display: none;
}
<div id="content">
                            <h3>Select Images Below</h3>
                            <ul id="imagegallery" , style="padding-bottom: 20px;">
                                <li>
                                    <a class='a' href="./img/team/t1.jpg" title="Black Man in Glasses" onclick="" style="padding-right: 10px;
                                        padding-left: 95px;">
                                        <img src="./img/team/t1.jpg" height="75px" width="75px"
                                            alt="the band in concert" />
                                    </a>
                                </li>
                                <li>
                                    <a class='a' href="./img/team/t2.jpg" title="White Man in Glasses"
                                        style="padding-right: 10px;">
                                        <img src="./img/team/t2.jpg" height="75px" width="75px" alt="the bassist" />
                                    </a>
                                </li>
                                <li>
                                    <a class='a' href="./img/team/t3.jpg" title="Brown Women"
                                        style="padding-right: 10px;">
                                        <img id='image' src="./img/team/t3.jpg" height="75px" width="75px"
                                            alt="the guitarist" />
                                    </a>
                                </li>
                                <li>
                                    <a class='a' href="./img/team/t4.jpg" title="White Women"
                                        style="padding-right: 10px;">
                                        <img id='image' src="./img/team/t4.jpg" height="75px" width="75px"
                                            alt="the audience" />
                                    </a>
                                </li>
                            </ul>
                            <div>
                                <img id='placeholder' , src="./img/resources/neutral_1.jpg" , height="450px"
                                    width="550px" alt="Image gooes here" , style="margin-bottom: 50px;padding: 10px;">
                            </div>
                            <div id="loading">
                                <img src="img/loading.gif" height="450px" width="550px" alt="">
                            </div>
                            <!-- <div id="show">
                                <h1 id='h'>It works</h1>
                            </div> -->
                        </div>

                    </div>

모두는 세부 대체하지 않고, 즉 추가 점을 제외하고 작동 imagedescription_dimagedescription_d2그것이 그들에게 새로운 APPEND 만듭니다. 종료하면 삭제하거나 비우지 만 작동하지 않는 다양한 검사를 구현했습니다. 도움이 필요하세요? 내가 어디에서 잘못 되었습니까?

그들은 Sanbira를 죽인다

귀하의 코드와 사고 방식이 약간 지저분합니다. 대부분의 HTML 기능을 활용하고 확장 가능한 간단한 방법으로 작업해야합니다. 일이 길고 복잡해지면 항상 다른 간단한 방법을 찾으십시오. 기회가 있습니다.

나는 당신이 data태그와 함께 일어나고 싶은 일에 대한 POC를 작성했습니다 innerHTML.

const description = document.querySelector(".description");
const descriptions = {
  img0: "hay im text",
  img1: "hay im anouther text"
};

document.addEventListener("click", (e) => {
  if (e.target.getAttribute("data-description")) {
    description.innerHTML = "loading";
    setTimeout(() => {
      description.innerHTML = descriptions[e.target.getAttribute("data-description")];
    }, 2000);
  }
});
.img-btn {
  margin: 10px;
  color: blue;
  cursor: pointer;
}

.description {
  margin: 10px;
}
<div class="img-btn" data-description="img0">img 1</div>
<div class="img-btn" data-description="img1">img 2</div>

<div class="description"></div>

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

동적으로 생성 된 HTML에서 자바 스크립트 함수를 호출 할 수 없습니다.

분류에서Dev

Jquery-동적으로 생성 된 요소를 삭제할 수 없습니다.

분류에서Dev

자바 스크립트에서 동적으로 생성 된 요소에 스타일을 적용 할 수 없습니다.

분류에서Dev

동적으로 생성 된 ImageView를 삭제할 수 없음-Android

분류에서Dev

동적으로 생성 된 ImageView를 삭제할 수 없음-Android

분류에서Dev

jquery 모바일에서 동적으로 생성 된 버튼 텍스트를 변경할 수 없습니다.

분류에서Dev

동적으로 생성 된 요소의 ID를 가져올 수 없습니다.

분류에서Dev

Vue JS-innerHTML로 렌더링 된 동적으로 생성 된 구성 요소는 이벤트에 바인딩 할 수 없습니다.

분류에서Dev

동적으로 생성 된 탭에 datagridview를 추가 할 수 없습니다.

분류에서Dev

동적으로 추가 된 요소를 제거 할 수 없습니다.

분류에서Dev

동적으로로드 된 하위 구성 요소에 json 데이터를 바인딩 할 수 없습니다.

분류에서Dev

동적으로 생성 된 버튼에 매개 변수를 추가하는 자바 스크립트

분류에서Dev

자바 스크립트로 동적으로 요소를 생성하여 리퍼러를 가짜로 만들 수 있습니까?

분류에서Dev

동일한 스크립트 내에서 생성 된 테이블을 삭제할 수 없습니다.

분류에서Dev

자바 스크립트 계산으로 생성 된 데이터를 어떻게 가져올 수 있습니까?

분류에서Dev

자바 스크립트 : 연결된 목록 : 개체 참조를 삭제할 수 없습니다.

분류에서Dev

jquery에서 동적으로 추가 된 텍스트 상자에 datepicker를 바인딩 할 수 없습니다.

분류에서Dev

jquery에서 동적으로 추가 된 텍스트 상자에 datepicker를 바인딩 할 수 없습니다.

분류에서Dev

자바 스크립트가 요소에서 찾기를 적용 할 수 없습니다.

분류에서Dev

요소를 동적으로 생성 할 때 자바 스크립트 이벤트 핸들러가 사라짐

분류에서Dev

서블릿에서 동적으로 생성 된 HTML 요소를 클릭 할 수 없습니다.

분류에서Dev

jquery로 동적으로 생성 된 링크를 활성화 할 수 없습니다.

분류에서Dev

jquery로 동적으로 생성 된 링크를 활성화 할 수 없습니다.

분류에서Dev

자바 스크립트가 스크립트를 제거하거나 생성하거나 DOM 요소를 스타일링 할 수 있습니까?

분류에서Dev

동적으로 생성 된 텍스트 영역 jquery의 텍스트를 검색 할 수 없습니다.

분류에서Dev

동적으로 추가 된 요소의 minDate를 설정할 수 없습니다.

분류에서Dev

함수를 통해 생성 된 요소에서 제거 버튼이 작동하지 않는 이유는 무엇입니까? | 자바 스크립트 및 HML

분류에서Dev

Puppeteer는 동적으로 생성 된 콘텐츠를 스크랩 할 수 없습니다.

분류에서Dev

동적으로 생성 된 앵커 태그에 클릭 이벤트를 추가 할 수 없습니다.

Related 관련 기사

  1. 1

    동적으로 생성 된 HTML에서 자바 스크립트 함수를 호출 할 수 없습니다.

  2. 2

    Jquery-동적으로 생성 된 요소를 삭제할 수 없습니다.

  3. 3

    자바 스크립트에서 동적으로 생성 된 요소에 스타일을 적용 할 수 없습니다.

  4. 4

    동적으로 생성 된 ImageView를 삭제할 수 없음-Android

  5. 5

    동적으로 생성 된 ImageView를 삭제할 수 없음-Android

  6. 6

    jquery 모바일에서 동적으로 생성 된 버튼 텍스트를 변경할 수 없습니다.

  7. 7

    동적으로 생성 된 요소의 ID를 가져올 수 없습니다.

  8. 8

    Vue JS-innerHTML로 렌더링 된 동적으로 생성 된 구성 요소는 이벤트에 바인딩 할 수 없습니다.

  9. 9

    동적으로 생성 된 탭에 datagridview를 추가 할 수 없습니다.

  10. 10

    동적으로 추가 된 요소를 제거 할 수 없습니다.

  11. 11

    동적으로로드 된 하위 구성 요소에 json 데이터를 바인딩 할 수 없습니다.

  12. 12

    동적으로 생성 된 버튼에 매개 변수를 추가하는 자바 스크립트

  13. 13

    자바 스크립트로 동적으로 요소를 생성하여 리퍼러를 가짜로 만들 수 있습니까?

  14. 14

    동일한 스크립트 내에서 생성 된 테이블을 삭제할 수 없습니다.

  15. 15

    자바 스크립트 계산으로 생성 된 데이터를 어떻게 가져올 수 있습니까?

  16. 16

    자바 스크립트 : 연결된 목록 : 개체 참조를 삭제할 수 없습니다.

  17. 17

    jquery에서 동적으로 추가 된 텍스트 상자에 datepicker를 바인딩 할 수 없습니다.

  18. 18

    jquery에서 동적으로 추가 된 텍스트 상자에 datepicker를 바인딩 할 수 없습니다.

  19. 19

    자바 스크립트가 요소에서 찾기를 적용 할 수 없습니다.

  20. 20

    요소를 동적으로 생성 할 때 자바 스크립트 이벤트 핸들러가 사라짐

  21. 21

    서블릿에서 동적으로 생성 된 HTML 요소를 클릭 할 수 없습니다.

  22. 22

    jquery로 동적으로 생성 된 링크를 활성화 할 수 없습니다.

  23. 23

    jquery로 동적으로 생성 된 링크를 활성화 할 수 없습니다.

  24. 24

    자바 스크립트가 스크립트를 제거하거나 생성하거나 DOM 요소를 스타일링 할 수 있습니까?

  25. 25

    동적으로 생성 된 텍스트 영역 jquery의 텍스트를 검색 할 수 없습니다.

  26. 26

    동적으로 추가 된 요소의 minDate를 설정할 수 없습니다.

  27. 27

    함수를 통해 생성 된 요소에서 제거 버튼이 작동하지 않는 이유는 무엇입니까? | 자바 스크립트 및 HML

  28. 28

    Puppeteer는 동적으로 생성 된 콘텐츠를 스크랩 할 수 없습니다.

  29. 29

    동적으로 생성 된 앵커 태그에 클릭 이벤트를 추가 할 수 없습니다.

뜨겁다태그

보관