development

jquery에 div가 있는지 확인

big-blog 2020. 3. 16. 08:24
반응형

jquery에 div가 있는지 확인


가능한 중복 :
jQuery에 대한 "존재"기능이 있습니까?

예, 이것이 많이 요청되었습니다. 그러나이 검색에 대한 Google 검색 결과에 다른 방법이 표시되어 있기 때문에 혼란 스럽습니다 (아래에 나열되어 있음)

$(document).ready(function() {
    if ($('#DivID').length){
        alert('Found with Length');
    }

    if ($('#DivID').length > 0 ) {
        alert('Found with Length bigger then Zero');
    }

    if ($('#DivID') != null ) {
        alert('Found with Not Null');
    }
});

div가 존재하는지 확인하는 올바른 방법은 3 중 어느 것입니까?

편집 : 사람들이 세 가지 다른 방법으로 더 나은 접근 방식을 배우고 싶지 않다는 것을 알면 참담합니다. 이 질문은 실제로 "div가 있는지 확인하는 방법"에 관한 것이 아니라 어떤 방법이 더 나은지, 누군가 설명 할 수 있다면 왜 더 나은지에 관한 것입니다.


첫 번째는 가장 간결한 것입니다. 처음 두 개는 동일하지만 첫 번째는 조금 짧으므로 바이트를 절약 할 수 있습니다. 세 번째는 명백하다. 왜냐하면 그 문제에 대해 객체가 결코 null이거나 거짓이 아니기 때문이다.


단순히 ID의 존재를 확인하는 경우 jQuery 로 이동할 필요가 없습니다 .

if(document.getElementById("yourid") !== null)
{
}

getElementByIdnull찾을 수 없으면를 반환 합니다.

참조 .

그러나 나중에 jQuery 객체 를 사용할 계획이라면 다음과 같이 제안합니다.

$(document).ready(function() {
    var $myDiv = $('#DivID');

    if ( $myDiv.length){
        //you can now reuse  $myDiv here, without having to select it again.
    }


});

선택기는 항상 jQuery 객체를 반환 하므로 확인할 필요가 없습니다 null( 확인해야 할 경우가 있지만 관심 null이 없습니다).

선택기가 아무것도 찾지 못하면 length === 0"거짓"입니다 (거짓을 부울로 변환 할 때). 따라서 무언가를 찾으면 "truthy"여야합니다. 따라서> 0을 확인할 필요가 없습니다. 단지 "truthyness"일뿐입니다.


karim79가 언급했듯이 첫 번째가 가장 간결합니다. 그러나 일부 자바 스크립트 / jQuery 프로그래머에게는 trueif 문에서 0이 아닌 값이 아닌 값을 평가한다는 것이 분명하지 않거나 알 수 없으므로 두 번째가 더 이해하기 쉽다고 주장 할 수 있습니다. 그리고 그로 인해 세 번째 방법이 잘못되었습니다.

참고 URL : https://stackoverflow.com/questions/6899175/check-if-a-div-exists-with-jquery


반응형