Via (এটি) এর মাধ্যমে সমস্তটি লুকান: jQuery নির্বাচক নয় in


97

উন্নত শিরোনাম, সহজ প্রশ্ন:

আমি কীভাবে jQuery এ নিম্নলিখিতগুলি করতে পারি (ব্যতীত সমস্ত কিছু লুকিয়ে রেখে $(this))?

$("table tr").click(function() {
    $("table tr:not(" + $(this) + ")").hide();
    // $(this) is only to illustrate my problem

    $("table tr").show();
});

উত্তর:



156
$("table.tr").not(this).hide();

একদিকে যেমন, আমি মনে করি আপনি বোঝাতে চেয়েছেন $("table tr")(বিন্দুর পরিবর্তে একটি স্থান সহ)।
আপনার কাছে যেভাবে রয়েছে, এটি প্রতিটি টেবিল নির্বাচন করে যার শ্রেণি রয়েছে tr(যেমন,<table class="tr"> ) রয়েছে, যা সম্ভবত আপনি চান না।

আরও তথ্যের জন্য ডকুমেন্টেশন দেখুন


হ্যাঁ, এটি বিন্দুর সাথে ভুল ছিল। আলেকজান্ডার্স সমাধানের চেয়ে এটি কীভাবে সহজ, তা দেখতে আমি কোনওভাবে ব্যর্থ হয়েছি, যা আরও পরিষ্কার বলে মনে হচ্ছে। আমি জানি আমি এটি দিয়ে কীভাবে জিজ্ঞাসা করেছি: না, তবে ভাইবোনদের পদ্ধতিটি আরও পরিষ্কার বলে মনে হচ্ছে।
কর্ডোনমে

4
কেবল যোগ করার জন্য, আপনি যদি টেবিলের মধ্যে কিছু ক্লিক করে সমস্ত টেবিলের সারিগুলি আড়াল করে রাখার চেষ্টা করেন তবে আপনি যে আইটেমটি ক্লিক করেছেন তাতে সারিটি বাদ দিয়ে ব্যবহার করুন:$('tr').not($(this).closest('tr')).hide();
জিম্বো

4
এটি নির্দিষ্ট উপাদানগুলি নির্বাচনের জন্য দরকারী, যদি কাঠামোটি ভাইবোনদের অনুমতি দেওয়ার চেয়ে জটিল হয়। আমি একটি উদাহরণ সহ আসতে খুব কঠিন সময় পার করছি, তবে সম্ভবত এমন কোনও কিছু যেখানে আপনি গ্রিডের ভিতরে জিনিস লুকিয়ে রাখতে চান তবে গ্রিডটি নিজেই নয়।
গুদেডে

6

আপনি যদি কিছু অন্যান্য নির্বাচকদের সাথে () সংযুক্ত না করতে চান তবে আপনি অ্যাড () ব্যবহার করতে পারেন:

$('a').click(function(e){
  $('a').not(this).add('#someID, .someClass, #someOtherID').animate({'opacity':0}, 800);
});

এটি অন্য সমস্ত লিঙ্কগুলি ম্লান করে দেবে, তবে ক্লিক করা একটি এবং অতিরিক্তভাবে কয়েকটি নির্বাচিত আইডি এবং ক্লাস ফিডআউট করবে।


0

আমি মনে করি একটি সমাধান এটি হতে পারে:

$("table.tr").click(function() {
    $("table.tr:not(" + $(this).attr("id") + "").hide(); // $(this) is only to illustrate my problem
    $(this).show();
})

মন্তব্যের জন্য এআইডিআইটি:

$("table.tr").click(function() {
    $("table.tr:not(#" + $(this).attr("id") + ")").hide(); // $(this) is only to illustrate my problem
    $(this).show();
})

আপনি বলতে চাচ্ছেন :not(#" + ...। এছাড়াও, উপাদানটির আইডি না থাকলে এটি কাজ করবে না, যা অসম্ভব।
স্ল্যাक्स

4
এর জন্য আপনার সমস্ত টেবিল সারিগুলিতে (বা আপনি যা ব্যবহার করছেন) এলোমেলো এবং অপ্রয়োজনীয় আইডি যুক্ত করা দরকার।
নিকফ

@ এসএলএক্স, সংশোধন করার জন্য ধন্যবাদ। ডু-এ, আপনার মনে থাকতে পারে যে কখনও কখনও আমরা যা চাই তা হ'ল সাহায্যের জন্য একটি দ্রুত উত্তর দেওয়া। আমরা যা রাখি তা কেন হালকাভাবে নিবেন না।
andres descalzo

@ নিকফ, হ্যাঁ, আপনি ঠিক বলেছেন, তবে সেই মন্তব্যটি প্রথমে একটি @ কর্ডোনেমে জিজ্ঞাসা করা ভাল হবে যদি তাদের প্রতিটি টিআরের আইডি থাকে have
andres descalzo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.