खाली JQuery ऑब्जेक्ट प्राप्त करना


120

निम्नलिखित कोड में मैंने चयन के मूल्य के आधार पर कुछ अनुवर्ती प्रश्नों को दिखाने और छिपाने के लिए एक चयन बॉक्स पर एक परिवर्तन हैंडलर स्थापित किया।

इसके अलावा, चयन के कुछ मूल्यों के लिए एक अतिरिक्त संदेश प्रदर्शित होता है।

यह देखने के लिए जांच करने के लिए कि क्या मुझे अतिरिक्त संदेश छिपाने की आवश्यकता है, मैं पिछले नाम के एक चर को रखता हूं। हैंडलर के निष्पादन पर मैं यह देखने के लिए जांच करता हूं कि क्या पिछला अशक्त है या यदि आकार 0 है।

एक प्रारंभिक JQuery ऑब्जेक्ट के लिए पिछले को इनिशियलाइज़ करना अच्छा होगा ताकि अशक्त के लिए अतिरिक्त जांच न हो।

एक $ करना () 1 के आकार के साथ एक वस्तु देता है।

क्या एक खाली Jquery वस्तु बनाने का एक तरीका है?

// इनिट फ़ंक्शन।
$ (Function () {
// खाता प्रकार चयन के लिए पहले से चयनित ऑब्जेक्ट को पकड़ो।

var पिछला = अशक्त; // यहाँ है जहाँ मैं इनिशियलाइज़ करना चाहूँगा।
                      // कुछ जैसा पिछला = $ ();


$ ( "[Name = 'ACCOUNTTYPE'] का चयन करें")। परिवर्तन (
    समारोह () {
        // पिछला संदेश छिपाएं यदि एक था।
        if (पिछला == अशक्त || Previous.size ()> 0) { 
            Previous.hide ();
        }

        // यदि मिला है तो संदेश दिखाएं और उसे पहले की तरह सेव करें।
        पिछला = $ ("#" + this.value + "_ Msg")। show ();

        // fisrt प्रश्न प्राप्त करें
        var FirstQuestion = $ ("। FirstQuestion");
        अगर (यह। === '') {
            FirstQuestion.hide ();
        }अन्य{
            // मैन्युअल रूप से FirstQuestion दिखाते हैं।
            FirstQuestion.show ();
        }
    });
}

सबसे खराब स्थिति में मैं ऐसा कुछ कर सकता था:

    var पिछला = {आकार: फ़ंक्शन () {वापसी 0; }};

लेकिन यह overkill की तरह लगता है।

जवाबों:


222

यह एक खाली jQuery- ऑब्जेक्ट बनाता है:

$([])

अपडेट: jQuery के नए संस्करणों में (1.4+), आप उपयोग कर सकते हैं:

$()

धन्यवाद। तो पिछले और आगे के संस्करणों के साथ संगतता रखने के लिए कौन सा बेहतर है? - वैसे भी, मैं अभी भी यह पता नहीं लगा सकता कि मेरे मामले में काम क्यों नहीं किया गया। शायद मुझे इसके बारे में एक प्रश्न खोलना चाहिए, लेकिन मैंने इसे jQuery के बजाय PHP का उपयोग करके हल किया है, इसलिए मैं वास्तव में अभी इसमें और खुदाई नहीं कर सकता।
क्रैगॉक्स

2
ठीक परीक्षण: $ () जोड़ें ($ ("div"))। सीएसएस ('रंग', 'लाल');
zloctb

24
$();

एक खाली सेट लौटना

JQuery 1.4 के रूप में, jQuery()बिना किसी तर्क के विधि को कॉल करना एक खाली jQuery सेट ( .length0 की संपत्ति के साथ ) देता है। JQuery के पिछले संस्करणों में, यह एक सेट लौटाएगा जिसमें दस्तावेज़ नोड होगा।

स्रोत: api.jquery.com


6
अपने कथन को वापस करने के लिए लिंक ( api.jquery.com/jQuery/#jQuery1 ) प्रदान करना संभवत: आपको और अधिक अप :) मिलेगा।
स्टडजेक

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 = $([]);

मैं एक अच्छा प्रोग्रामर नहीं है, लेकिन यह यू खाली वस्तु देता है :))


आप डाउनवोट हो रहे हैं क्योंकि आपने एक मौजूदा (और बहुत पुराना) उत्तर दोहराया है। यह समुदाय के लिए कोई मूल्य नहीं जोड़ता है।
ईशरवुड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.