একটি খালি জিকুয়েরি অবজেক্ট পাওয়া


120

নীচের কোডটিতে আমি নির্বাচনের মানের উপর ভিত্তি করে কিছু ফলোআপ প্রশ্নগুলি দেখানোর জন্য এবং লুকানোর জন্য একটি নির্বাচিত বাক্সে একটি পরিবর্তন হ্যান্ডলার সেটআপ করেছি।

এছাড়াও, নির্বাচনের কিছু মানের জন্য একটি অতিরিক্ত বার্তা প্রদর্শিত হয় যা প্রদর্শিত হয় that

আমার অতিরিক্ত বার্তাটি লুকানোর দরকার আছে কিনা তা পরীক্ষা করার জন্য, আমি পূর্ববর্তী নামে একটি পরিবর্তনশীল রাখি। হ্যান্ডলারের মৃত্যুদন্ড কার্যকর করার পরে আমি পূর্ববর্তীটি শূন্য কিনা বা আকার 0 হয় কিনা তা পরীক্ষা করে দেখুন।

খালি জিকুয়েরি অবজেক্টের আগেরটি সূচনা করতে ভাল লাগবে যাতে নালার জন্য অতিরিক্ত চেক করতে না হয়।

একটি $ () করা 1 এর আকারের সাথে একটি বস্তু ফেরত দেয়।

একটি খালি Jquery অবজেক্ট তৈরি করার কোন উপায় আছে?

// ইনিশ ফাংশন।
$ (ফাংশন () {
// অ্যাকাউন্ট টাইপ নির্বাচনের জন্য পূর্ববর্তী নির্বাচিত বস্তুটি ধরে রাখুন।

var পূর্ববর্তী = নাল; // এখানেই আমি শুরু করতে চাই।
                      // পূর্বের মতো কিছু = $ ();


$ ( "[NAME = 'AccountType'] নির্বাচন করুন")। পরিবর্তন করুন (
    ফাংশন () {
        // পূর্ববর্তী বার্তাটি থাকলে কোনও লুকান।
        যদি (পূর্ববর্তী == নাল || পূর্ববর্তী আকার ()> 0) 
            Previous.hide ();
        }

        // ম্যাসেজটি পাওয়া গেলে দেখাও এবং আগের মত এটি সংরক্ষণ করুন।
        পূর্ববর্তী = $ ("#" + এটি.মূল্য + "_ এমএসজি") show শো ();

        // প্রথম প্রশ্ন পান
        var ফার্স্টকিউশন = $ ("। প্রথম প্রশ্ন");
        যদি (এটি.মূল্য === '') {
            FirstQuestion.hide ();
        } অন্য {
            // ম্যানুয়ালি ফার্স্টকিউশন দেখান।
            FirstQuestion.show ();
        }
    });
}

সবচেয়ে খারাপ ক্ষেত্রে আমি এরকম কিছু করতে পারি:

    var পূর্ববর্তী = {আকার: ফাংশন () {রিটার্ন 0; }};

তবে ওভারকিলের মতো মনে হচ্ছে।

উত্তর:


222

এটি একটি খালি jQuery- অবজেক্ট তৈরি করে:

$([])

আপডেট: jQuery (1.4+) এর নতুন সংস্করণগুলিতে আপনি ব্যবহার করতে পারেন:

$()

ধন্যবাদ। সুতরাং কোনটি আগের এবং পরবর্তী সংস্করণগুলির সাথে সামঞ্জস্য রাখা ভাল? - যাইহোক, কেন এখনও আমার মামলায় কাজ করেনি তা আমি এখনও বুঝতে পারি না । সম্ভবত আমার এটি সম্পর্কে একটি প্রশ্ন খোলার উচিত, তবে আমি jQuery এর পরিবর্তে পিএইচপি ব্যবহার করে এটি সমাধান করেছি যাতে এই মুহুর্তে আমি সত্যিই এটিতে আরও খনন করতে পারি না।
ক্রেগোক্স

2
সূক্ষ্ম পরীক্ষা: $ ()। যোগ ($ ("ডিভ"))। সিএসএস ('রঙ', 'লাল');
zloctb

23
$();

খালি সেট ফিরছে

JQuery 1.4 হিসাবে, jQuery()কোনও যুক্তি ছাড়াই পদ্ধতিতে কল করা একটি খালি jQuery সেট ( .length0 এর সম্পত্তি সহ ) প্রদান করে। JQuery এর পূর্ববর্তী সংস্করণগুলিতে, এটি নথির নোডযুক্ত একটি সেট ফেরত দেবে।

সূত্র: api.jquery.com


6
আপনার বিবৃতিটি ব্যাক আপ করার জন্য লিঙ্কটি সরবরাহ করা ( api.jquery.com/jQuery/#jQuery1 ) সম্ভবত আপনাকে আরও উত্সাহ পেতে পারে :)।
স্টাডিজিক

1
অন্তর্ভুক্ত উত্স জন্য upvated। সব প্রসঙ্গে উপলব্ধ থাকায় সর্বদা দুর্দান্ত। সম্পর্কিত অনুচ্ছেদে আরও সরাসরি লিঙ্কটি হ'ল
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 = $([]);

আমি ভাল প্রোগ্রামার নই তবে এটি আপনাকে খালি জিনিস দেয় :))


আপনি নিম্নগামী হচ্ছেন কারণ আপনি একটি বিদ্যমান (এবং খুব পুরানো) উত্তরটি পুনরাবৃত্তি করেছেন। এটি সম্প্রদায়ে কোনও মূল্য যুক্ত করে না।
ইশারউড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.