빈 JQuery 객체 얻기


120

다음 코드에서는 선택 값에 따라 몇 가지 후속 질문을 표시하고 숨기도록 선택 상자에 변경 처리기를 설정했습니다.

또한 일부 선택 값에 대해 표시되는 추가 메시지가 있습니다.

추가 메시지를 숨길 필요가 있는지 확인하기 위해 Previous라는 변수를 유지합니다. 핸들러를 실행하면 Previous가 null인지 또는 크기가 0인지 확인합니다.

null에 대한 추가 검사를 수행 할 필요가 없도록 Previous를 빈 JQuery 객체로 초기화하는 것이 좋습니다.

$ ()를 수행하면 크기가 1 인 객체가 반환됩니다.

빈 Jquery 객체를 만드는 방법이 있습니까?

// Init 함수.
$ (함수 () {
// 계정 유형 선택을 위해 이전에 선택한 개체를 보유합니다.

var Previous = null; // 여기에서 초기화하고 싶은 곳입니다.
                      // 이전 = $ ();


$ ( "선택 [name = 'AccountType']"). change (
    함수 () {
        // 이전 메시지가있는 경우 숨기기.
        if (이전 == null || Previous.size ()> 0) { 
            Previous.hide ();
        }

        // 발견되면 메시지를 표시하고 이전으로 저장합니다.
        이전 = $ ( "#"+ this.value + "_ Msg"). show ();

        // fisrt 질문 받기
        var FirstQuestion = $ ( ". FirstQuestion");
        if (this.value === '') {
            FirstQuestion.hide ();
        }그밖에{
            // FirstQuestion을 수동으로 표시합니다.
            FirstQuestion.show ();
        }
    });
}

최악의 경우 다음과 같이 할 수 있습니다.

    var Previous = {size : function () {return 0; }};

그러나 그것은 과잉처럼 보입니다.

답변:


222

이렇게하면 빈 jQuery 객체가 생성됩니다.

$([])

업데이트 : 최신 버전의 jQuery (1.4 이상)에서는 다음을 사용할 수 있습니다.

$()

감사. 그렇다면 이전 및 이후 버전과의 호환성을 유지하는 것이 더 나은 것은 무엇입니까? -어쨌든, 나는 여전히 내 사건에서 효과가 없었는지 알 수 없습니다 . 아마도 그것에 대해 질문을 열어야 할 수도 있지만 jQuery 대신 PHP를 사용하여 해결했기 때문에 지금은 더 많이 파헤칠 수 없습니다.
cregox 2011 년

2
미세 테스트 : $ (). add ($ ( "div")). css ( 'color', 'red');
zloctb

24
$();

빈 세트 반환

jQuery 1.4부터 jQuery()인수없이 메서드를 호출하면 빈 jQuery 집합 ( .length속성 0)이 반환 됩니다. 이전 버전의 jQuery에서는 문서 노드를 포함하는 집합을 반환했습니다.

출처 : api.jquery.com


6
문을 백업하기 위한 링크 ( api.jquery.com/jQuery/#jQuery1 )를 제공하면 아마도 더 많은 혜택을 얻을 수 있습니다. :).
studgeek

1
포함 된 소스에 찬성 투표했습니다. 모든 컨텍스트를 사용할 수 있으면 항상 좋습니다. 관련 단락에 대한보다 직접적인 링크는 다음과 같습니다. api.jquery.com/jQuery/#returning-empty-set
ksadowski

3

내 조언은 그렇게하지 말라는 것입니다. 이렇게하는 더 쉬운 방법이 있습니다. 치다:

<select id="select" name="select">
  <option value="msg_1">Message 1</option>
  <option value="msg_2">Message 1</option>
  <option value="msg_3">Message 1</option>
</select>

<div class="msg_1 msg_3">
  ...
</div>

<div class="msg_1">
  ...
</div>

<div class="msg_2">
  ...
</div>

$(function() {
  $("#select").change(function() {
    var val = $(this).val();
    $("div." + val").show();
    $("div:not(." + val + ")").hide();
  });
});

훨씬 쉽습니다. 기본적으로 표시하고 숨길 항목을 나타내는 클래스를 제공하면 추적이 필요하지 않습니다. 대안은 다음과 같습니다.

$(function() {
  $("#select").change(function() {
    var val = $(this).val();
    $("div").each(function() {
      if ($(this).hasClass(val)) {
        $(this).show();
      } else {
        $(this).hide();
      }
    });
  });
});

-1

이 시도

 var new = $([]);

나는 좋은 프로그래머는 아니지만 빈 개체를 제공합니다. :))


기존 (그리고 매우 오래된) 답변을 반복했기 때문에 반대표를 받고 있습니다. 그것은 커뮤니티에 어떤 가치도 추가하지 않습니다.
isherwood
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.