>source

요소가 DOM에 있는지 여부에 따라 자바 스크립트의 동일한 변수에 다른 값을 할당하려고합니다. 지금까지

if(document.body.contains(document.getElementById('a'))){
       var newVar = document.getElementById('a').innerHTML;
    } else if(document.body.contains(document.getElementById('b'))){
        var newVar = document.getElementById('b').innerHTML;
    }

그러나 이것은 체크 된 변수 'a'가 존재하는 경우에만 작동합니다. 나는이 접근 방식이 다소 틀렸을 수 있다는 것을 알고 있으며, 간단한 방법이 있는지, 아니면 동일한 변수가 선언 되었기 때문에 불가능한지 궁금합니다.

  • 답변 # 1

    당신이 얻고 싶다면 innerHTML 사용할 수있는 첫 번째 현재 요소의 속성 querySelector , 여기서 쿼리는 다음으로 구분 된 각 요소의 검색 쿼리로 구성됩니다. ,

    다음과 같은 것 :

    var dom = document.querySelector("#a, #b");
    if (dom instanceof HTMLElement) console.log("Found :" + dom.innerHTML);
    else console.log("Not found");
    
    

    예 :

    var newVar = (document.querySelector("#a, #b") || {}).innerHTML;
    console.log(newVar || "Not found");
    
    

    <div id="a">Hello A</div>
    <div id="b">Hello B</div>
    
    

    var newVar = (document.querySelector("#a, #b") || {}).innerHTML;
    console.log(newVar || "Not found");
    
    

    <div id="a">Hello A</div>
    
    

    var newVar = (document.querySelector("#a, #b") || {}).innerHTML;
    console.log(newVar || "Not found");
    
    

    <div id="b">Hello B</div>
    
    

    var newVar = (document.querySelector("#a, #b") || {}).innerHTML;
    console.log(newVar || "Not found");
    
    

  • 답변 # 2

    아래 코드를 자바 스크립트로 작성할 수 있습니다.

    if( document.getElementById('a') ){ 
      var newVar = document.getElementById('a').innerHTML;
    } else if( document.getElementById('b') ){ 
      var newVar = document.getElementById('b').innerHTML;
    }
    
    

  • 답변 # 3

    이 검사 'document.body.contains'를 작성할 필요가 없습니다. ID로 요소를 가져옵니다.

관련 자료

  • 이전 python - Pipeline의 특정 열에 StandardScaler를 사용하고 원본 데이터에 연결
  • 다음 날씬한 반응 튜토리얼에 대한 혼란