আমি কীভাবে Qu (এটি) কোনও jQuery নির্বাচক থেকে বাদ দিতে পারি?


203

আমার এরকম কিছু রয়েছে:

<div class="content">
    <a href="#">A</a>
</div>
<div class="content">
    <a href="#">B</a>
</div>
<div class="content">
    <a href="#">C</a>
</div>

যখন এই লিঙ্কগুলির মধ্যে একটি ক্লিক করা হয়, আমি ক্লিক না করা লিঙ্কগুলিতে .hide () ফাংশন সম্পাদন করতে চাই। আমি বুঝতে পেরেছি jQuery এর রয়েছে: নির্বাচক নয়, তবে এই ক্ষেত্রে এটি কীভাবে ব্যবহার করবেন তা আমি বুঝতে পারি না কারণ এটি ব্যবহার করে লিঙ্কগুলি নির্বাচন করা প্রয়োজন$(".content a")

আমি এরকম কিছু করতে চাই

$(".content a").click(function()
{
    $(".content a:not(this)").hide("slow");
});

তবে আমি কীভাবে এটি ব্যবহার করব তা অনুধাবন করতে পারি না: এই ক্ষেত্রে সঠিকভাবে নির্বাচক নয়।


3
!$(this)সহজ কোড জন্য চেষ্টা করুন ।
এরি 12

উত্তর:


390

নির্বাচকের পরিবর্তে not() পদ্ধতিটি ব্যবহার করে দেখুন ।:not()

$(".content a").click(function() {
    $(".content a").not(this).hide("slow");
});

আমি কেন এটি কাজ করতে পারব না ... $ ("# মেনু-ধারক # প্রথম_স্তিণী লি") not
Marck

4
@ মার্ক প্রসঙ্গ ছাড়া, আমি জানি না। একটি নতুন প্রশ্ন তৈরি করুন এবং আমি সাহায্য করতে সক্ষম হতে পারে।
ড্যান হারবার্ট

2
এটি একটি খুব খারাপ সমাধান (পারফরম্যান্স-ওয়াইস)। কলব্যাকের $(".content a")অভ্যন্তরে আসার কোনও কারণ নেই click... প্রতি ক্লিকে ...
রোনেন সিপিস


9

আপনি jQuery .siblings()পদ্ধতি ব্যবহার করতে পারেন :

এইচটিএমএল

<div class="content">
  <a href="#">A</a>
  <a href="#">B</a>
  <a href="#">C</a>
</div>

জাভাস্ক্রিপ্ট

$(".content").on('click', 'a', function(e) {
  e.preventDefault();
  $(this).siblings().hide('slow');
});

ওয়ার্কিং ডেমো: http://jsfiddle.net/wTm5f/


5

আপনার "ভাইবোনের ()" পদ্ধতিটি ব্যবহার করা উচিত, এবং কেবলমাত্র সেই প্রভাব প্রয়োগের জন্য "।" একজন নির্বাচককে বারবার চালানো থেকে বিরত রাখতে হবে:

এইচটিএমএল

<div class="content">
    <a href="#">A</a>
</div>
<div class="content">
    <a href="#">B</a>
</div>
<div class="content">
    <a href="#">C</a>
</div>

সিএসএস

.content {
    background-color:red;
    margin:10px;
}
.content.other {
    background-color:yellow;
}

জাভাস্ক্রিপ্ট

$(".content a").click(function() {
  var current = $(this).parent();
  current.removeClass('other')
    .siblings()
    .addClass('other');
});

এখানে দেখুন: http://jsfiddle.net/3bzLV/1/

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