JQuery এ সূচী দ্বারা একটি উপাদান পান


117

আমার কাছে একটি আনর্ডারড তালিকা এবং সেই তালিকায় একটি liট্যাগের সূচি রয়েছে । আমাকে liসেই সূচকটি ব্যবহার করে উপাদানটি পেতে হবে এবং এর পটভূমির রঙ পরিবর্তন করতে হবে। পুরো তালিকাটি লুপ না করেই কি এটি সম্ভব? মানে, এমন কোনও পদ্ধতি আছে যা এই কার্যকারিতা অর্জন করতে পারে?

এটি আমার কোড যা আমি বিশ্বাস করি যে এটি কার্যকর হবে ...

<script type="text/javascript">
  var index = 3;
</script>

<ul>
    <li>India</li>
    <li>Indonesia</li>
    <li>China</li>
    <li>United States</li>
    <li>United Kingdom</li>
</ul>

<script type="text/javascript">
  // I want to change bgColor of selected li element
  $('ul li')[index].css({'background-color':'#343434'});

  // Or, I have seen a function in jQuery doc, which gives nothing to me
  $('ul li').get(index).css({'background-color':'#343434'});
</script>

3
আপনি যে দুটি উপায়ে ব্যবহার করছেন সেখানে jQuery অবজেক্টের চেয়ে ডোম উপাদানগুলি ফিরে আসে যাতে .css এ কল তাদের উপর কাজ করবে না। একিউ ব্যবহার করে নীচে দারিয়াসের উত্তরটি আপনি চান তা।
রিচার্ড ডালটন

উত্তর:


257
$(...)[index]      // gives you the DOM element at index
$(...).get(index)  // gives you the DOM element at index
$(...).eq(index)   // gives you the jQuery object of element at index

ডোম অবজেক্টের cssফাংশন নেই, শেষটি ব্যবহার করুন ...

$('ul li').eq(index).css({'background-color':'#343434'});

দস্তাবেজ:

.get(index) আয়: উপাদান

  • বিবরণ: jQuery অবজেক্টের সাথে মিলিত DOM উপাদানগুলি পুনরুদ্ধার করুন।
  • দেখুন: https://api.jquery.com/get/

.eq(index) রিটার্নস: jQuery

  • বিবরণ: নির্দিষ্ট সূচকের সাথে মিলিত উপাদানের সেটকে হ্রাস করুন।
  • দেখুন: https://api.jquery.com/eq/


12

আপনি eq পদ্ধতি বা নির্বাচক ব্যবহার করতে পারেন :

$('ul').find('li').eq(index).css({'background-color':'#343434'});

1
আপনি এর মাধ্যমে নির্বাচককে আরও সহজ করে তুলতে পারেন $('ul li').eq(index).css({'background-color':'#343434'});
gdoron মনিকা

1
তবে বেশিরভাগ ব্রাউজারে নির্বাচক $('ul').find('li')দ্রুত হয় faster [১ , ]
দারিয়াস

1

সিএসএস :nth-of-typeসিউডো-ক্লাস ব্যবহার করে jQuery এ সূচী দ্বারা উপাদান পাওয়ার আরও একটি উপায় রয়েছে :

<script>
    // css selector that describes what you need:
    // ul li:nth-of-type(3)
    var selector = 'ul li:nth-of-type(' + index + ')';
    $(selector).css({'background-color':'#343434'});
</script>

অন্য সব আপনার প্রয়োজন মতো যে কোনও উপাদান মেলে আপনি jQuery এর সাথে ব্যবহার করতে পারেন নির্বাচক রয়েছে


-1

আপনি jquery এড়িয়ে যেতে পারেন এবং কেবল CSS স্টাইল ট্যাগিং ব্যবহার করতে পারেন:

 <ul>
 <li>India</li>
 <li>Indonesia</li>
 <li style="background-color:#343434;">China</li>
 <li>United States</li>
 <li>United Kingdom</li>
 </ul>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.