1077

이 질문에는 이미 답변이 있습니다.

요소가 생성 된 경우 요소가 존재하는지 어떻게 확인합니까?.append()방법?$('elemId').length나를 위해 작동하지 않습니다.


  • .length잘 작동, 여기를 참조하십시오 :jsfiddle.net/yahavbr/A9zW2네가 사용했다면#코드를 게시하면 잘못 처리 한 부분이 표시됩니다. - Shadow Wizard
  • $ (' #selector ') 길이와 $ (' 선택기 ' 드롭 다운 크기를 확인하려면 $ (' #선택기 옵션 ') 크기 (). - Majedur Rahaman

8 답변


1521

$('elemId').length효과가 없다.   나를.

넣어야합니다.#before 요소 id :

$('#elemId').length
---^

바닐라 자바 스크립트를 사용하면 해시가 필요하지 않습니다 (#).document.getElementById('id_here'), 그러나 jQuery를 사용할 때, 다음을 기반으로 대상 요소에 해시를 넣어야합니다.idCSS와 같습니다.


  • CSS 셀렉터가 사용되므로 "#elementId" 요소별로 선택합니다. "elementId" 실제로 모든 emenets를 선택합니다.태그들"elementId"로 명명된다. - Petr Gladkikh
  • @trejder 대부분의 포스터는 바닐라 JS를 인식하지 못했고 "바닐라 자바 스크립트" 그들은 실제로의미심장 한base JavaScript ( "plain", "unadorned"에서와 같은 "vanilla"). - D Coetzee
  • @trejder는 " 바닐라 JS " 어쨌든 기본 자바 스크립트와 정확히 동일합니다 (다운로드 한 파일은 항상 비어 있음). 누군가 Javascript 기반 판매를 결정했습니다. - Brilliand
  • 예, 그 웹 사이트는 "바닐라 JS"라는 프레임 워크의 필요성을 조롱하고 있습니다. JavaScript 자체 만이 아닙니다. @trejder는 좀 더주의 깊게 읽어야합니다. - LasagnaAndroid
  • " 해시가 필요하지 않습니다 " 잘못된 기능을 사용하는 경우에만document.querySelector('#id_here')해쉬 기호는 jQuery와 동등한만큼 필요합니다.$('#id_here'). - AndreKR

311

선택기의 길이를 확인해보십시오. 그러면 선택기의 길이를 확인한 다음 요소가 존재하지 않아야합니다.

 if( $('#selector').length )         // use this if you are using id to check
{
     // it exists
}


 if( $('.selector').length )         // use this if you are using class to check
{
     // it exists
}


  • 나는이 접근법이 너무 직관적이지 못하다는 것을 안다. 숫자가 음수인지 확인하는 방법과 어셈블리에 코드를 작성한 다음 CPU의 레지스터에서 일부 비트를 수동으로 트위닝해야한다고 말하는 사람과 비슷합니다. .isNegative ()와 같은 메소드. ' 길이 ' 재산이 혼란스러워. 코드를 통해 검색하는 동안 즉시 인식 할 수있는 .exists () 메소드와 같은 것을 보게됩니다. - Aquarelle
  • 어떤면에서는 jquery가 자바 스크립트를보다 쉽게 사용할 수 있도록 도약과 경계를 만들었지 만 여전히 관용적 인 것은 아닙니다. - lfender6445
  • 이 솔루션은 완벽하게 직관적입니다. length 속성은 쿼리와 일치하는 요소의 수를 알려줍니다. 그것에 대해 직관적이지 않고 직설적이지 않은 것은 무엇입니까? - Alice Wonder
  • 보다 직관적 인 함수를 작성할 수 있습니다.function exists(elementName) { return $(elementName).length; } - Sinister Beard

102

이 시도:

if ($("#mydiv").length > 0){
  // do something here
}

length 속성은 요소가 없으면 0을 반환합니다.


  • > 0이면, 0이면 거짓으로 평가됩니다. - Wessam El Mahdy
  • 포함시키지 않고이 작업을 수행 할 수는 없습니다.> 0. 그게 왜 일어날 지 모르는 어떤 아이디어? - KillahB

54

요소가 있는지 어떻게 확인합니까?

if ($("#mydiv").length){  }

그것이있는 경우0평가할 것입니다.false, 그 이상true.

비교할 필요가없는 것보다 더 큰 것을 필요가 없습니다.



25

너의elemId그 이름에서 알 수 있듯이Id속성이 있으면 이것이 존재하는지 확인하기 위해 할 수있는 모든 것입니다.

바닐라 자바 스크립트 :고급 선택자가있는 경우

//you can use it for more advanced selectors
if(document.querySelectorAll("#elemId").length){}

if(document.querySelector("#elemId")){}

//you can use it if your selector has only an Id attribute
if(document.getElementById("elemId")){}

jQuery :

if(jQuery("#elemId").length){}


  • 너는 필요 없어.!= null같이querySelector항상 돌아올거야.null(틀린) 또는 요소 - 1j01
  • 나는 여전히 사용할 것이다.if (document.querySelector("elemId") != null )코드의 가독성을 높이기 위해 - Mrinmoy
  • @Mrinmoy 귀하의 사고 방식은 자바 또는 C #에서 오는 것입니다. JavaScript에서 우리는 7 개의 거짓 값 (0, -0, null, 정의되지 않음, ' ' ' NaN 및 false)을 가지며 이러한 허위 값if (document.querySelector("elemId") != null )더 읽기 쉬운 코드를 작성하는 데 아무런 영향을주지 않습니다. 자바 스크립트 세계에서는 자바 나 C #과 같은 구조 프로그래밍 언어로부터 사고 방식을 지키지 않고 자바 스크립트 커뮤니티의 규칙을 이해하는 것이 좋습니다. 이 특정 경우의 자바 스크립트 개발자를 위해!= null완전히 중복되고 훨씬 덜 읽을 수 있습니다. - Mehran Hatami
  • @MehranHatami, 그래서 당신은 코드가 javaScripter에 의해서만 읽을 수 있다는 것에 동의하고있다. 여전히 혼란 스러울 것이다.querySelector()보고null or 0또는 다른 5 개의 값 중 하나를 선택하십시오.querySelectorAll() jQuery는 요소를 찾을 수 없을 때 다른 반환 값을가집니다. 요즘 사람들이 테크놀로지와 프레임 워크의 다 언어를 사용하여 일을보다 가독성있게 만드는 것이 효과적이라고 생각하십시오. 그런데 나는 java / golang 프로그래머보다 더 javascripter이다. - Mrinmoy
  • @Mrinmoy 나는 이것이 논쟁의 여지가있는 주제라는 데 동의하지만, 내가 말한 것은 내 의견이 아닌 사실이다. 우리 팀에서 '! = null'인 요청을 보았을 때 승인하지 않습니다. 그것은 대회이지만 그것이 규칙이되었지만, 일종의. 가장 중요한 것은 내 팀의 개발자가 기본 정보를 알고 코드가 중복되지 않는지 확인하는 것입니다. `! = null`은 나에게 '! = false`와 같지만 if 문에는 유효한 조건이지만 그 자체는 불필요합니다. - Mehran Hatami

12

배열과 같은 표기법을 사용하고 첫 번째 요소를 확인할 수도 있습니다. 빈 배열 또는 컬렉션의 첫 번째 요소는 간단합니다.undefined그래서 "정상적인"javascript truthy / falsy 동작을 얻습니다.

var el = $('body')[0];
if (el) {
    console.log('element found', el);
}
if (!el) {
    console.log('no element found');
}


8

네이티브 JS를 사용하여 객체의 존재 여부를 테스트 할 수 있습니다.

if (document.getElementById('elemId') instanceof Object){
    // do something here
}

잊지 마세요, jQuery는 원시 자바 스크립트 명령 및 속성에 대한 정교한 (그리고 매우 유용한) 래퍼 일뿐입니다.


  • 너는 필요 없어.instanceof Object - 1j01

-14

요소에 클래스가있는 경우 다음을 시도 할 수 있습니다.

if( $('.exists_content').hasClass('exists_content') ){
 //element available
}


  • 요소가 없으면 어떻게 클래스를 확인할 수 있습니다. - Pir Abdul
  • 와우는 그 해답을 보지 못했습니다. - Munkhdelger Tumenbayar

연결된 질문


관련된 질문

최근 질문