jQuery প্রথম বাদে সব নির্বাচন করুন


272

JQuery এ আমি কোনও এলিমেন্টের প্রথমটি বাদে অন্য কোনও অ্যাক্সেসের জন্য নির্বাচককে কীভাবে ব্যবহার করব? সুতরাং নিম্নলিখিত কোডে কেবল দ্বিতীয় এবং তৃতীয় উপাদান অ্যাক্সেস করা হবে। আমি জানি যে আমি সেগুলি ম্যানুয়ালি অ্যাক্সেস করতে পারি তবে এমন অনেকগুলি উপাদান থাকতে পারে যাতে সম্ভব হয় না। ধন্যবাদ।

<div class='test'></div>
<div class='test'></div>
<div class='test'></div>

এই উত্তরটি তাকান stackoverflow.com/questions/4831334/...
AuthorProxy

উত্তর:


575
$("div.test:not(:first)").hide();

বা:

$("div.test:not(:eq(0))").hide();

বা:

$("div.test").not(":eq(0)").hide();

বা:

$("div.test:gt(0)").hide();

বা: (@ জোর্ডান লেভের মন্তব্য অনুসারে):

$("div.test").slice(1).hide();

ইত্যাদি।

দেখা:


19
এই সমস্ত সমাধানগুলির সাথে তুলনা করার জন্য এখানে একটি জেসফিউর দেওয়া আছে: jsperf.com/fastest-way-to-select-all-expect-the-first-one আইটেমের সংখ্যার উপর নির্ভর করে, $("li").not(":eq(0)")ভাল বলে মনে হচ্ছে।
ড্যামিয়েন

4
এই তালিকা পছন্দ। শুধু যোগ করতে চেয়েছিলাম: $("div.test:first").siblings().hide()। প্রথম উপাদানটি দিয়ে শুরু করা আমার পক্ষে দরকারী হয়েছে, তারপরে কোনও সাধারণ নির্বাচকের সাথে পাওয়া না গেলেও এর সমস্ত ভাইবোনদের লুকিয়ে রাখুন।
লেভি

2
দুর্দান্ত তালিকা! যদিও একটি ছোট মন্তব্য; আমি মনে করি না জিটি আর কোনও জিকুয়েরি ফাংশন, আমি যে সংস্করণটি ব্যবহার করি তা কমপক্ষে not আমি একটি টাইপরর পেয়েছি: .gt কোনও ফাংশন নয়।
সুরটিকে

1
$("div.test").slice(1).hide();খালি নির্বাচনের ক্ষেত্রে সবচেয়ে ক্ষমা দেখাচ্ছে ...
ফ্রাঙ্ক নোক

1
@ স্যান্ডিগিফোর্ড এতে কি পরীক্ষার ক্লাসে নেই এমন ভাইবোনদের অন্তর্ভুক্ত করবেন না? এবং ভাই-বোন নয় এমন পরীক্ষার শ্রেণীর উপাদানগুলি মিস করবেন?
বব স্টেইন

30

যেভাবে jQuery নির্বাচনকারীরা ডান থেকে বামেli:not(:first) মূল্যায়ন করা হয়, তত মূল্যায়ণ দ্বারা বেশ পঠনযোগ্য ধীর হয়ে যায়।

একটি সমান দ্রুত এবং সহজেই পড়া সমাধানটি ফাংশন সংস্করণটি ব্যবহার করছে .not(":first"):

যেমন

$("li").not(":first").hide();

জেএসপিফার্ফ: http://jsperf.com/fastest-way-to-select-all-expect-the-first-one/6

এটি তুলনায় ধীরে ধীরে কয়েক শতাংশ পয়েন্ট slice(1), তবে "প্রথমটি বাদে আমি সবই চাই" হিসাবে খুব পঠনযোগ্য।


1
এটি আমার খুব প্রিয়, আমি এটি খুব পরিষ্কার এবং পড়তে সহজ বলে মনে করি। অভিপ্রায়টি অবাস্তব।
সুরটিকে

3

আমার উত্তর শীর্ষে প্রকাশিত এক থেকে উদ্ভূত একটি বর্ধিত কেসটির দিকে দৃষ্টি নিবদ্ধ করে।

মনে করুন আপনার কাছে এমন একটি উপাদান রয়েছে যা থেকে আপনি প্রথমে বাদে শিশু উপাদানগুলি আড়াল করতে চান। উদাহরণ হিসাবে:

<html>
  <div class='some-group'>
     <div class='child child-0'>visible#1</div>
     <div class='child child-1'>xx</div>
     <div class='child child-2'>yy</div>
  </div>
  <div class='some-group'>
     <div class='child child-0'>visible#2</div>
     <div class='child child-1'>aa</div>
     <div class='child child-2'>bb</div>
  </div>
</html>
  1. আমরা .childপ্রতিটি গ্রুপে সমস্ত উপাদান লুকিয়ে রাখতে চাই । সুতরাং এটি সাহায্য করবে না কারণ .childবাদে সমস্ত উপাদান লুকিয়ে রাখবে visible#1:

    $('.child:not(:first)').hide();
  2. সমাধান (এই বর্ধিত ক্ষেত্রে) হবে:

    $('.some-group').each(function(i,group){
        $(group).find('.child:not(:first)').hide();
    });
    

1

$(document).ready(function(){

  $(".btn1").click(function(){
          $("div.test:not(:first)").hide();
  });

  $(".btn2").click(function(){
           $("div.test").show();
          $("div.test:not(:first):not(:last)").hide();
  });

  $(".btn3").click(function(){
          $("div.test").hide();
          $("div.test:not(:first):not(:last)").show();
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button class="btn1">Hide All except First</button>
<button class="btn2">Hide All except First & Last</button>
<button class="btn3">Hide First & Last</button>

<br/>

<div class='test'>First</div>
<div class='test'>Second</div>
<div class='test'>Third</div>
<div class='test'>Last</div>

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.