[javascript] jQuery를 사용하여 HTML 요소가 비어 있는지 어떻게 확인합니까?

jQuery를 사용하여 HTML 요소가 비어있는 경우에만 함수를 호출하려고합니다.

이 같은:

if (isEmpty($('#element'))) {
    // do something
}



답변

if ($('#element').is(':empty')){
  //do something
}

자세한 내용은 http://api.jquery.com/is/http://api.jquery.com/empty-selector/를 참조하십시오.

편집하다:

일부 사람들이 지적했듯이 빈 요소에 대한 브라우저 해석은 다를 수 있습니다. 공백과 줄 바꿈과 같은 보이지 않는 요소를 무시하고 구현을보다 일관성있게 만들려면 함수를 만들거나 코드를 사용하십시오.

  function isEmpty( el ){
      return !$.trim(el.html())
  }
  if (isEmpty($('#element'))) {
      // do something
  }

jQuery 플러그인으로 만들 수도 있지만 아이디어를 얻을 수 있습니다.


답변

Chrome과 FF에서 공백과 줄 바꿈을 요소로 간주하기 때문에 이것이 신뢰할 수있는 유일한 방법이라는 것을 알았습니다.

if($.trim($("selector").html())=='')


답변

공백과 줄 바꿈은 : empty 선택기를 사용하는 주요 문제입니다. CSS에서 : empty pseudo 클래스는 같은 방식으로 작동합니다. 나는이 방법을 좋아한다 :

if ($someElement.children().length == 0){
     someAction();
}


답변

!elt.hasChildNodes()

예, 이것은 jQuery가 아니므로 다음을 사용할 수 있습니다.

!$(elt)[0].hasChildNodes()

이제 행복해?


답변

jQuery.fn.doSomething = function() {
   //return something with 'this'
};

$('selector:empty').doSomething();


답변

“빈”이라는 말은 HTML 콘텐츠가 없다는 의미입니다.

if($('#element').html() == "") {
  //call function
}


답변

텍스트가 포함되지 않은 상태로 비어 있습니까?

if (!$('#element').text().length) {
    ...
}